Python numpy-将随机整数作为浮点数
在定点迭代中,我改变了矩阵初始化的方式Python numpy-将随机整数作为浮点数,python,numpy,casting,Python,Numpy,Casting,在定点迭代中,我改变了矩阵初始化的方式 def init(M,N): return 2.5*np.ones([M,N]) 到 在哪里 这立刻引起了 A-=步长*G TypeError:无法使用强制转换规则“same\u kind”将ufunc减法输出从dtype('float64')强制转换为dtype('int32') 有什么大不了的,我只是 nprnd.randint(1,6,[M,N], dtype='float') 除了 TypeError:randint不支持的数据类型“f
def init(M,N):
return 2.5*np.ones([M,N])
到
在哪里
这立刻引起了
A-=步长*G
TypeError:无法使用强制转换规则“same\u kind”将ufunc减法输出从dtype('float64')强制转换为dtype('int32')
有什么大不了的,我只是
nprnd.randint(1,6,[M,N], dtype='float')
除了
TypeError:randint不支持的数据类型“float64”
我该如何避免这种情况?我不想生成一个矩阵,然后复制它,只是为了把它转换成float。有更智能的方法吗?您可以使用
astype
进行显式转换:
nprnd.randint(1,6,[M,N]).astype("float")
是的,但这复制了数组。没有办法避免吗?如果你想要这些范围之间的随机浮点值,你也可以用它来创建矩阵
5*np.random.random_sample((M,N))+1
@umutto谢谢你,但是我想要整数,我只需要它们作为浮点。@User1291你能再显示一点代码吗?特别是,什么是G
,什么是A
,什么是步长
。
nprnd.randint(1,6,[M,N], dtype='float')
nprnd.randint(1,6,[M,N]).astype("float")