我有以下代码:
r = numpy.zeros(shape = (width, height, 9))
它创建一个填充零的 width x height x 9
矩阵。相反,我想知道是否有一个函数或方法可以简单地将它们初始化为 NaN
s。
原文由 devoured elysium 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有以下代码:
r = numpy.zeros(shape = (width, height, 9))
它创建一个填充零的 width x height x 9
矩阵。相反,我想知道是否有一个函数或方法可以简单地将它们初始化为 NaN
s。
原文由 devoured elysium 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一种选择是使用 numpy.full
,这是 NumPy 1.8+ 中可用的选项
a = np.full([height, width, 9], np.nan)
这非常灵活,您可以用您想要的任何其他数字填充它。
原文由 Pietro Biroli 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
numpy 中的向量运算很少需要循环。您可以创建一个未初始化的数组并立即分配给所有条目:
我已经计时了替代方案
a[:] = numpy.nan
这里和a.fill(numpy.nan)
由Blaenk发布:时间显示偏好
ndarray.fill(..)
作为更快的选择。 OTOH,我喜欢 numpy 的便捷实现,您可以在其中为整个切片分配值,代码的意图非常明确。请注意
ndarray.fill
执行其操作,因此numpy.empty((3,3,)).fill(numpy.nan)
将改为返回None
。