我正在创建一个 numpy
随机值数组,并将它们添加到包含 32 位浮点数的现有数组中。我想使用与目标数组相同的数据类型生成随机值,这样我就不必手动转换数据类型。目前我这样做:
import numpy as np
x = np.zeros((10, 10), dtype='f')
x += np.random.randn(*x.shape).astype('f')
我想做的而不是最后一行是这样的:
x += np.random.randn(*x.shape, dtype=x.dtype)
但是 randn
(实际上没有 numpy.random
方法)不接受 dtype
参数。
我的具体问题是,是否可以在创建随机数时为它们指定 dtype,而不必调用 astype
? (我的猜测是随机数生成器的长度为 64 位,因此这样做并没有什么意义,但我想我会问是否可能。)
原文由 lmjohns3 发布,翻译遵循 CC BY-SA 4.0 许可协议
简单地试试这个:
或者定义一个新函数,比如
如果您必须在帖子中使用您的代码,请尝试使用此代码
这会将
randn
的结果分配给np.zeros
分配的内存