【发布时间】:2019-10-22 22:21:20
【问题描述】:
无论如何创建一个numpy数组,当索引超出范围时返回np.nan?例如
x = np.array([1,2,3])
x[1] # 2
x[-2] # np.nan
x[5] # np.nan
我找到的最接近的东西是np.pad。
我知道我可以编写一个包装类,但我想知道是否有任何有效的 numpy 方法可以做到这一点。
【问题讨论】:
-
x[-2]有效吗? Numpy 支持负索引。是否要覆盖此功能? -
这似乎是 scipy 人必须添加到 numpy 中的东西。我不认为 numpy 有这个选项。您可以使用 try 和 except,如果找不到索引,则返回 np.nan 或类似的东西。这是我现在唯一能想到的。
-
你为什么不直接
try except -
@J.Doe:不能。负索引在 numpy 中有效
-
啊我现在明白了,你想禁用负索引。在这种情况下,我认为您需要一个包装器,就像this answer 和
__getitem__一样,您还可以手动或使用try/except 检查索引是否超出范围。我不认为你可以猴子补丁np.ndarray。