假设我有:
并且。
a = array([[1, 2],
[3, 4]])
并且。
b = array([1,1])
我想在索引a中使用b,即执行a[b]并获得4,而不是[[3, 4], [3, 4]]
我可能可以这样做:
a[tuple(b)]
有更好的方法吗?
谢谢。
a = array([[1, 2],
[3, 4]])
b = array([1,1])
我想在索引a中使用b,即执行a[b]并获得4,而不是[[3, 4], [3, 4]]
我可能可以这样做:
a[tuple(b)]
有更好的方法吗?
谢谢。
假设您想通过 b
中存储的 n 个索引对访问 a
的子向量,方法如下:
b = array([[0, 0],
...
[1, 1]])
可以按照以下步骤完成:
a[b[:,0], b[:,1]]
对于单个索引向量,这会变成 a[b[0],b[1]]
,但我想使用元组的方法更易于阅读,因此更可取。
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
arr[tuple(a.astype(int))]