python - 创建用 NaN 填充的 numpy 矩阵

我有以下代码:

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

它创建了一个 width x height x 9 填充零的矩阵。相反,我想知道是否有一个函数或方法可以简单地将它们初始化为 NaNs。

最佳答案

在 numpy 中你很少需要循环来进行向量操作。 您可以创建一个未初始化的数组并一次分配给所有条目:

>>> a = numpy.empty((3,3,))
>>> a[:] = numpy.nan
>>> a
array([[ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN]])

我在此处为 a[:] = numpy.nan 和 Blaenk 发布的 a.fill(numpy.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

时间显示偏好 ndarray.fill(..) 作为更快的选择。 OTOH,我喜欢 numpy 的便捷实现,您可以在其中为整个切片分配值,代码的意图非常明确。

请注意 ndarray.fill 就地执行其操作,因此 numpy.empty((3,3,)).fill(numpy.nan) 将改为返回

https://stackoverflow.com/questions/1704823/

相关文章:

linux - Ubuntu - 在启动时使用 "sudo"运行命令

python - 如何在 Python 中列出目录的内容?

linux - 内核栈和用户空间栈

python - 替换大于某个值的 Python NumPy 数组的所有元素

python - 随机种子() : What does it do?

linux - 如果指向的文件被移动或删除,Linux 上打开的文件句柄会发生什么

python - 在 Alpine Linux 上安装 Pillow 时没有这样的文件或目录 "li

python - 如何删除 Python 中的前导空格?

linux - 如何从命令行获取 nvidia 驱动程序版本?

linux - 如何找出文件的 MIME 类型(Content-Type)?