2016-12-02 42 views
1

對於給定的NumPy數組,很容易沿一個維度執行「正常」和。例如:沿着NumPy數組的一個軸按位或運算

X = np.array([[1, 0, 0], [0, 2, 2], [0, 0, 3]]) 
X.sum(0) 
    =array([1, 2, 5]) 
X.sum(1) 
    =array([1, 4, 3]) 

相反,是否存在一種「有效」的方式來計算一個類似於數組的一維的按位或?如下所示,除了不需要for循環或嵌套函數調用。

例子:按位或沿第零維度我目前正在做它:

np.bitwise_or(np.bitwise_or(X[:,0],X[:,1]),X[:,2]) 
    =array([1, 2, 3]) 

我想什麼:

X.bitwise_sum(0) 
    =array([1, 2, 3]) 

回答

4
numpy.bitwise_or.reduce(X, axis=whichever_one_you_wanted) 

使用numpy.bitwise_or ufunc的reduce方法。