给出以下数据数组:
d=np.array([10,11,12,13,14])
和另一个索引数组:
i=np.array([0, 2, 3, 6])
使用d
(i
)为d[i]
编制索引的好方法是什么,以便6
代替索引越界错误,我会得到:
np.array([10, 12, 13])
答案 0 :(得分:4)
在使用之前清理self.platform = 'Vudu'
很容易:
i
In [150]: d[i[i<d.shape[0]]]
Out[150]: array([10, 12, 13])
有几个np.take
用于处理越界索引,但'ignore'不是其中之一。
答案 1 :(得分:3)
也许使用i[i < d.size]]
来获取小于d
长度的元素:
print(d[i[i < d.size]])
[10 12 13]
答案 2 :(得分:0)
valid_indices = i[(i >= 0) & (i < len(d))]
selected_items = d[valid_indices]
NumPy似乎没有提供跳过无效索引的错误处理模式,可能是因为当结果数组是多维的时,跳过它们并没有多大意义。相反,只需在有效范围内选择i
的元素,并使用这些元素进行索引。