Maison >développement back-end >Tutoriel Python >Comment puis-je effectuer des opérations logiques OU/ET sur plusieurs tableaux NumPy ?
Dans Numpy, logical_or ne peut comparer que deux tableaux. Cela soulève la question : comment trouver l’union de plus de deux tableaux ? La même question s'applique à logical_and et à l'obtention de l'intersection de plusieurs tableaux.
Limitations des fonctions logiques de Numpy
Numpy limite explicitement logical_or à deux arguments : x1 et x2.
Chaînage Logique Opérations
Plusieurs appels à logical_or peuvent être chaînés :
x = np.array([True, True, False, False]) y = np.array([True, False, True, False]) z = np.array([False, False, False, False]) result = np.logical_or(np.logical_or(x, y), z)
résultat : [Vrai, Vrai, Vrai, Faux]
Généralisation du chaînage à l'aide Numpy's Reduction
Pour généraliser ce chaînage, NumPy fournit la réduction function:
result = np.logical_or.reduce((x, y, z))
résultat : [Vrai, Vrai, Vrai, Faux]
Cette approche fonctionne également avec des tableaux multidimensionnels :
xyz = np.array((x, y, z)) result = np.logical_or.reduce(xyz)
résultat : [ Vrai, vrai, vrai, faux]
Python Réduire
Le functools.reduce de Python peut également être utilisé :
import functools result = functools.reduce(np.logical_or, (x, y, z))
résultat : [Vrai, Vrai, Vrai, Faux]
Numpy's Any Fonction
Toute fonction de Numpy peut également être utilisée, mais nécessite un explicite argument de l'axe :
result = np.any((x, y, z), axis=0)
résultat : [Vrai, Vrai, Vrai, Faux]
ET logique (logical_and) et autres opérations
Similaire Les méthodes s'appliquent à d'autres opérations logiques, y compris logical_and. Par exemple, logical_xor n'a pas d'équivalent à all ou any.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!