2016-12-02 2 views
1

Für ein bestimmtes NumPy-Array ist es einfach, eine "normale" Summe in einer Dimension zu berechnen. Zum Beispiel:Bitweises ODER entlang einer Achse eines NumPy-Arrays

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]) 

Stattdessen ist es ein „effizienter“ Weg, um die bitweise der Rechen- oder entlang einer Dimension eines ähnlich Array? So etwas wie das Folgende, außer dass keine for-Schleifen oder verschachtelten Funktionsaufrufe erforderlich sind.

Beispiel: bitweise OR entlang nullten Dimension, wie ich es derzeit tue:

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

Was würde Ich mag:

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

Antwort

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

Verwenden Sie die reduce Methode des numpy.bitwise_or ufunc.

Verwandte Themen