如何将numpy矩阵初始化为0或1以外的东西?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

我有以下代码:

r = numpy.zeros(shape = (width, height, 9))

它创建一个宽度x高度x9矩阵,填充了零。相反,我想知道是否有函数或方法将它们初始化为NaN。

有吗?而不用手动做循环之类的?

提问于
用户回答回答于

对于numpy中的向量操作,很少需要循环。您可以创建一个未初始化的数组,并一次为所有条目分配:

>>> a = numpy.empty((3,3,))
>>> a[:] = numpy.nan
>>> a
array([[ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN]])
如下:
$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a.fill(np.nan)"
10000 loops, best of 3: 54.3 usec per loop
$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a[:] = np.nan" 
10000 loops, best of 3: 88.8 usec per loop

用户回答回答于

另一个选择是使用np.full,NumPy 1.8+中提供的选项

a = np.full([width, height, 9], np.nan)

扫码关注云+社区