Se stai chiedendo informazioni numpy.logical_or
, allora no, come dicono esplicitamente i documenti, gli unici parametri sono x1, x2
, e facoltativamente out
:
numpy.
logical_or
( x1, x2[, out]
) =<ufunc 'logical_or'>
Ovviamente puoi concatenare più logical_or
chiamate in questo modo:
>>> 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)
Il modo per generalizzare questo tipo di concatenamento in NumPy è con reduce
:
>>> np.logical_or.reduce((x, y, z))
array([ True, True, True, False], dtype=bool)
E naturalmente questo funziona anche se si dispone di un array multi-dimensionale, invece di array, anzi separati, è così che è destinata ad essere utilizzati:
>>> 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)
Ma una tupla di tre array 1D di uguale lunghezza è un array_like in termini di NumPy e può essere usata come array 2D.
Al di fuori di NumPy, puoi anche usare Python reduce
:
>>> functools.reduce(np.logical_or, (x, y, z))
array([ True, True, True, False], dtype=bool)
Tuttavia, a differenza di NumPy reduce
, spesso non è necessario Python. Per la maggior parte dei casi, c'è un modo più semplice per fare le cose, ad esempio per concatenare più or
operatori Python , non reduce
finire operator.or_
, usa e basta any
. E quando non c'è , di solito è più leggibile usare un ciclo esplicito.
E infatti NumPy any
può essere utilizzato anche in questo caso, sebbene non sia così banale; se non gli dai esplicitamente un asse, ti ritroverai con uno scalare invece di un array. Così:
>>> np.any((x, y, z), axis=0)
array([ True, True, True, False], dtype=bool)
Come ci si potrebbe aspettare, logical_and
è simile: puoi concatenarlo, np.reduce
esso, functools.reduce
esso o sostituirlo all
con un esplicito axis
.
E le altre operazioni, come logical_xor
? Ancora una volta, stesso affare ... tranne che in questo caso non esiste una funzione all
/ any
-type che si applica. (Come lo chiameresti odd
??)
any()
?