有没有创建一个在索引越界时返回 np.nan
的 numpy 数组?例如
x = np.array([1,2,3])
x[1] # 2
x[-2] # np.nan
x[5] # np.nan
我找到的最接近的是 np.pad
。
我知道我可以编写一个包装器类,但我想知道是否有任何有效的 numpy 方法来做到这一点。
最佳答案
In [360]: x = np.array([1,2,3])
In [361]: x[1]
Out[361]: 2
np.take
可让您使用模式控制进行索引。如果索引超出范围,默认情况下会引发错误(其他选项请参阅文档):
In [363]: np.take(x,1)
Out[363]: 2
In [364]: np.take(x,-2)
Out[364]: 2
In [365]: np.take(x,5)
----
IndexError: index 5 is out of bounds for size 3
您可以编写一个小函数,将它包装在 try/except
中,在 IndexError
的情况下返回 np.nan
。
请记住,np.nan
是一个 float ,而您的示例数组是整数 dtype。
关于python - 修改numpy数组返回 `nan`越界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56493818/