【发布时间】:2014-06-14 20:18:36
【问题描述】:
我正在创建一个 numpy 随机值数组并将它们添加到包含 32 位浮点数的现有数组中。我想使用与目标数组相同的 dtype 生成随机值,这样我就不必手动转换 dtypes。目前我这样做:
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 位长,所以这样做并没有什么意义,但我想我会问是否可能。)
【问题讨论】:
-
numpy 会自动将随机数组的类型转换为
x的类型,当您执行就地操作时,绝对不需要astype,只需执行x += np.random.randn(*x.shape),并且亲眼看看x.dtype没有改变。
标签: python numpy random floating-point-precision