所以在固定点迭代中,我改变了矩阵的初始化方式

def init(M,N):
    return 2.5*np.ones([M,N])


def init(M,N):
    return nprnd.randint(1,6,[M,N])

哪里
import numpy as np
import numpy.random as nprnd

这立即导致
A-=步长*G
TypeError:无法使用转换规则'same-kind'将ufunc减去dtype('float64')的输出转换为dtype('int32')
很重要,我只是
nprnd.randint(1,6,[M,N], dtype='float')

除了
类型错误:randint不支持的数据类型“float64”
我该如何规避?我有点不想生成一个矩阵,然后复制它,只是把它转换成浮点数。有更聪明的方法吗?

最佳答案

您可以使用astype进行显式转换:

nprnd.randint(1,6,[M,N]).astype("float")

09-09 18:20