Maison >développement back-end >Tutoriel Python >Comment puis-je effectuer des opérations logiques OU/ET sur plusieurs tableaux NumPy ?

Comment puis-je effectuer des opérations logiques OU/ET sur plusieurs tableaux NumPy ?

DDD
DDDoriginal
2024-11-27 17:52:11647parcourir

How Can I Perform Logical OR/AND Operations on Multiple NumPy Arrays?

Application des opérations logiques de Numpy à plusieurs tableaux

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn