2016-08-13 40 views
1

我有很多相同長度的陣列的應用條件:遍佈多個蟒蛇陣列

a = [3,7,5,2,7] 
b = [3,4,1,6,8] 
c = [2,3,7,8,3] 
d = [1,3,5,6,4] 
e = [2,6,5,1,7] 

我的條件是X> 2。我需要的是一個最終的數組,如果條件適用於所有的每個位置檢查什麼陣列。

其結果將是:

[False, True, False, False, True] 

甚至更​​好:

[0, 1, 0, 0, 1] 

很抱歉,如果這很簡單,我搜索了很久,但只找到相關的話題,但沒有確切地回答這個問題。

回答

2

堆棧那些1D輸入數組作爲2D陣列的行與np.vstack,執行比較,然後使用np.all沿第一軸線。因此,實現起來 -

(np.vstack((a,b,c,d,e))>2).all(axis=0) 

採樣運行 -

>>> np.vstack((a,b,c,d,e)) # Stack as a 2D array 
array([[3, 7, 5, 2, 7], 
     [3, 4, 1, 6, 8], 
     [2, 3, 7, 8, 3], 
     [1, 3, 5, 6, 4], 
     [2, 6, 5, 1, 7]]) 
>>> np.vstack((a,b,c,d,e))>2 
array([[ True, True, True, False, True], 
     [ True, True, False, True, True], 
     [False, True, True, True, True], 
     [False, True, True, True, True], 
     [False, True, True, False, True]], dtype=bool) 
>>> (np.vstack((a,b,c,d,e))>2).all(axis=0) 
array([False, True, False, False, True], dtype=bool) 
+0

OK,它_was_那麼容易,非常感謝! – AndyB