python - 修改numpy数组返回 `nan`越界?

标签 python numpy

有没有创建一个在索引越界时返回 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/

相关文章:

键上 dict 正则表达式的 Python dict

python - 参数函数求和

python | pydub : how to load wav sample into pydub from np. 数组而不是 wav 文件?

python - 当图像转换为 numpy 数组时如何调整图像大小

python - 在Matplotlib中模拟Excel的 "scatter with smooth curve"样条函数3分

Python:list.index 找不到现有元素

python - 在python中的字符串中插入多个元素

python - 你如何调用numpy数组中位置X的元素?

python - 是否存在运算符(operator)错误,因为执行后它说不明确错误。我在做什么错误?

python - 在 Python 中从文件中删除一行