创建用NaN填充的Numpy矩阵
我有以下代码:
r = numpy.zeros(shape = (width, height, 9))
它创建一个width x height x 9
填充零的矩阵。相反,我想知道是否有一种函数或方法可以将它们初始化为NaN
s,而方法很简单。
回答:
您很少需要在numpy中进行矢量操作循环。您可以创建一个未初始化的数组并立即分配给所有条目:
>>> a = numpy.empty((3,3,))>>> a[:] = numpy.nan
>>> a
array([[ NaN, NaN, NaN],
[ NaN, NaN, NaN],
[ NaN, NaN, NaN]])
我已经在a[:] = numpy.nan
这里和a.fill(numpy.nan)
Blaenk发布的时间安排了时间:
$ 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
时序显示优先选择ndarray.fill(..)
作为更快的替代方案。OTOH,我喜欢numpy的便捷实现,在该实现中您可以同时为整个slice分配值,代码的意图非常明确。
请注意,ndarray.fill
它是就地执行其操作,因此numpy.empty((3,3,)).fill(numpy.nan)
将改为return
None
。
以上是 创建用NaN填充的Numpy矩阵 的全部内容, 来源链接: utcz.com/qa/401889.html