繁体   English   中英

多维数组的索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM