2017-10-02 6 views
1

マスクこの出力にのpython ...私は、この入力を有効にする関数や方程式を作成する必要が

a = [True, False, True] 
b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

...

c = [[1, 3], [4, 6], [7, 9]] 

注意をboolean型の列から配列のサブセットを作成します。上記の配列はすべてnumpy配列です。ありがとう!

+0

を圧縮し、その後xに対して '' [[Eのような – RomanPerekhrest

+0

何かをnumpy'タグを追加itertoolsを使用することができ、ジップ(サブリスト)の電子Xの場合] bのサブリストのために ''は動作しますが、より効率的なnumpyの解決策があると私は思っています –

答えて

6

numpyソリューション

import numpy as np 
a = np.array([True, False, True]) 
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
b[:,a] 

array([[1, 3], 
     [4, 6], 
     [7, 9]]) 
+0

ニースは、 – Vaishali

2

あなたは

from itertools import compress 
c = [list(compress(i, a)) for i in b] 

[[1, 3], [4, 6], [7, 9]] 
関連する問題