总有没有建立一个numpy数组,当索引超出范围时会返回np.nan
?例如
x = np.array([1,2,3])
x[1] # 2
x[-2] # np.nan
x[5] # np.nan
我发现最接近的东西是np.pad
。
我知道我可以编写一个包装器类,但是我想知道是否有任何有效的numpy方法来实现它。
答案 0 :(得分:1)
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
中,如果是np.nan
,则返回IndexError
。
请记住,np.nan
是浮点数,而示例数组是整数dtype。
答案 1 :(得分:-1)
您有很多选择:
我喜欢一堂课。