簡體   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