2014-03-29 11 views
2

要對元素求和,我們有二元運算符np.add,而且還有np.sum處理多個元素。同樣,我們有np.multiplynp.product做乘法。「numpy.logical_or」的相應多元素操作符版本是什麼?

但是對於np.logical_or,相應的多元素運算符是什麼?假設我有以下陣列:

In [29]: a 
Out[29]: 
array([[ 1., 0., 0.], 
     [ 0., 1., 0.], 
     [ 0., 0., 1.]]) 

我想有一個方法像np.logical_or(a, axis=0),使我能得到這樣的一個數組[ True, True, True]。現在,我能想出的唯一辦法是:

In [31]: a.sum(0).astype(bool) 
Out[31]: array([ True, True, True], dtype=bool) 

但是,這並不是一個好辦法,因爲它會在陣列喜歡失敗:

array([[-1, -1], 
     [ 1, 1]]) 
+2

'sum'和'prod'實現爲調用'add.reduce'和'multiply.reduce',和所有二進制ufuncs有'.reduce'方法,所以即使'any'和'所有'都沒有明確定義,它們很容易生成。 – Jaime

+0

@Jaime太棒了! thx很多〜 – zhangxaochen

回答

1

你在想的np.all(用於logical_and)或np.any(對於logical_or)。

In [11]: a.any(axis=1) 
Out[11]: array([ True, True, True], dtype=bool) 
相關問題