Wenn Sie nachfragen numpy.logical_or, dann nein, wie in den Dokumenten ausdrücklich angegeben, sind die einzigen Parameter x1, x2und optional out:
  numpy.logical_or( x1, x2[, out]) =<ufunc 'logical_or'>
Sie können natürlich mehrere logical_orAnrufe wie folgt verketten:
>>> x = np.array([True, True, False, False])
>>> y = np.array([True, False, True, False])
>>> z = np.array([False, False, False, False])
>>> np.logical_or(np.logical_or(x, y), z)
array([ True,  True,  True,  False], dtype=bool)
Die Art und Weise, diese Art der Verkettung in NumPy zu verallgemeinern, ist mit reduce:
>>> np.logical_or.reduce((x, y, z))
array([ True,  True,  True,  False], dtype=bool)
Und natürlich wird dies auch arbeiten , wenn Sie ein mehrdimensionales Array statt separater Arrays in der Tat, das ist , wie es gemeint verwendet werden:
>>> xyz = np.array((x, y, z))
>>> xyz
array([[ True,  True, False, False],
       [ True, False,  True, False],
       [False, False, False, False]], dtype=bool)
>>> np.logical_or.reduce(xyz)
array([ True,  True,  True,  False], dtype=bool)
Ein Tupel aus drei 1D-Arrays gleicher Länge ist jedoch in NumPy-Begriffen array_like und kann als 2D-Array verwendet werden.
Außerhalb von NumPy können Sie auch Pythons verwenden reduce:
>>> functools.reduce(np.logical_or, (x, y, z))
array([ True,  True,  True,  False], dtype=bool)
Im Gegensatz zu NumPy's reducewird Python jedoch nicht oft benötigt. In den meisten Fällen gibt es eine einfachere Möglichkeit, Dinge zu tun - z. B. mehrere Python- orOperatoren miteinander zu verketten , nicht zu reduceEnde zu gehen operator.or_, sondern nur zu verwenden any. Und wenn dies nicht der Fall ist , ist es normalerweise besser lesbar, eine explizite Schleife zu verwenden.
Tatsächlich kann NumPy's anyauch für diesen Fall verwendet werden, obwohl es nicht ganz so trivial ist. Wenn Sie ihm keine Achse explizit zuweisen, erhalten Sie einen Skalar anstelle eines Arrays. Damit:
>>> np.any((x, y, z), axis=0)
array([ True,  True,  True,  False], dtype=bool)
Wie zu erwarten ist, logical_andist es ähnlich - Sie können es verketten, np.reducees, functools.reducees oder alldurch ein explizites ersetzen axis.
Was ist mit anderen Operationen logical_xor? Wieder das gleiche Geschäft ... außer dass in diesem Fall keine all/ any-Typ-Funktion gilt. (Wie würdest du es nennen odd?)
     
              
any()?