2017-07-25 105 views
0

說我有2 numpy的陣列Python的掩蔽

a = [0, 2, 4, 6] 

b = [0.03, 0.78, 0.25, 0.47, 0.98, 0.58, 0.63] 

我希望返回一個檢查其中的數組a的索引在b,並返回一個第三陣列的該值在b指數象下面這樣:

c = [0.3, 0.25, 0.98, 0.63] 

我已經試過

for i in range(len(b)): 
if b[i] == a.any(): 
    c=[I] 

但獲得全0。

+3

簡單爲'c = b [a]'? – MaxNoe

+0

列表索引不能是列表 –

+0

OP在談論numpy數組 – MaxNoe

回答

5

只需使用

c = b[a] 

這將是B中的觀點,因此,如果你改變C,你也改變灣如果你不想要這個,請使用.copy()

c = b[a].copy() 
+0

尼斯。爲了完成,您可以包含一個創建獨立列表的示例。 – idjaw

1

使用列表理解

a = [0, 2, 4, 6] 
b = [0.03, 0.78, 0.25, 0.47, 0.98, 0.58, 0.63] 
c = [b[i] for i in a] 
+0

不只適用於列表而不適用於numpy數組嗎? – cryptofish

+0

原來的問題被編輯添加'numpy'我以前不知道 –