鑑於兩個列表:確定數組B的各元件的位置在另一數組A
In [518]: A
Out[518]: [3, 4, 2, 1, 7, 6, 5]
In [519]: B
Out[519]: [4, 6]
在B
每個元素在A
存在,無一例外。
我想檢索B
的索引數組,如A所示。例如,4在A的索引1中存在,6在B
的位置5。對於這種情況我的預期輸出是[1, 5]
。
這是我做得到指數:
In [520]: np.flatnonzero(np.in1d(a, b))
Out[520]: array([1, 5])
不幸的是,這不會在其他大多數情況下工作。例如,如果B = [6, 4]
,我的方法在輸出[5, 1]
時仍輸出[1, 5]
。
有沒有一種有效的numpy方法來獲得我想要實現的目標?
相當肯定這之前已經來呢?那些重複的東西呢? –
'np.where'的幫助給出了這個確切的例子:'ix = np.in1d(A.ravel(),B).reshape(A.shape); np.where(IX)'。對不起,不符合你的第二條標準。 –
@JonClements可能,找不到任何東西......至於B中的模糊,肯定任何值得它的鹽的numpy方法都應該能夠適當地處理這些,但它不會以任何方式傷害我。 –