我想初始化并填充一个 numpy
数组。最好的方法是什么?
这符合我的预期:
>>> import numpy as np
>>> np.empty(3)
array([ -1.28822975e-231, -1.73060252e-077, 2.23946712e-314])
但这不是:
>>> np.empty(3).fill(np.nan)
>>>
什么都没有?
>>> type(np.empty(3))
<type 'numpy.ndarray'>
在我看来 np.empty()
调用返回了正确类型的对象,所以我不明白为什么 .fill()
不是在职的?
首先分配 np.empty()
的结果可以正常工作:
>>> a = np.empty(3)
>>> a.fill(np.nan)
>>> a
array([ nan, nan, nan])
为什么我需要分配给一个变量才能使用 np.fill()
?我错过了更好的选择吗?
最佳答案
你也可以试试:
In [79]: np.full(3, np.nan)
Out[79]: array([ nan, nan, nan])
相关文档:
Definition: np.full(shape, fill_value, dtype=None, order='C')
Docstring:
Return a new array of given shape and type, filled with `fill_value`.
虽然我认为这可能仅在 numpy 1.8+ 中可用
关于python - 初始化和填充 numpy 数组的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22414152/