[英]Index of multidimensional array
我在使用多维矢量作为多维矢量的索引时遇到问题。 假设我有C.ndim == idx.shape [0],那么我想让C [idx]给我一个元素。 让我用一个简单的例子来解释:
A = arange(0,10)
B = 10+A
C = array([A.T, B.T])
C = C.T
idx = array([3,1])
现在,C [3]给我第三行,C [1]给我第一行。 C [idx]然后会给我两行的vstack。 但是,我需要获取C [3,1]。 我将如何实现给定的数组C,idx?
/编辑:一个答案建议元组(idx)。 这项工作非常适合单个idx。 但是:让我们更上一层楼:说INDICES是一个向量,其中我垂直堆叠了idx形状的数组。 tuple(INDICES)将给我一个长元组,因此C [tuple(INDICES)]将不起作用。 有没有一种干净的方法可以执行此操作,或者我需要遍历行?
如果将idx
转换为tuple
,它将被解释为基本索引而不是高级索引:
>>> C[3,1]
13
>>> C[tuple(idx)]
13
对于矢量情况:
>>> idx
array([[3, 1],
[7, 0]])
>>> C[3,1], C[7,0]
(13, 7)
>>> C[tuple(idx.T)]
array([13, 7])
>>> C[idx[:,0], idx[:,1]]
array([13, 7])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.