numpy - 将随机整数作为浮点数

Use*_*291 2 python casting numpy

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

def init(M,N):
    return 2.5*np.ones([M,N])
Run Code Online (Sandbox Code Playgroud)

def init(M,N):
    return nprnd.randint(1,6,[M,N])
Run Code Online (Sandbox Code Playgroud)

哪里

import numpy as np
import numpy.random as nprnd
Run Code Online (Sandbox Code Playgroud)

这立刻引起了

A - = step_size*G.

TypeError:无法使用强制转换规则"same_kind"将ufunc从dtype('float64')减去输出到dtype('int32')

很重要,我会

nprnd.randint(1,6,[M,N], dtype='float')
Run Code Online (Sandbox Code Playgroud)

除了

TypeError:randint不支持dtype"float64"

我该如何规避这个?我有点不想生成一个矩阵,然后复制它只是为了将它转换为浮动.有更智能的方式吗?

fil*_*mor 5

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

nprnd.randint(1,6,[M,N]).astype("float")
Run Code Online (Sandbox Code Playgroud)