Maison >développement back-end >Tutoriel Python >Comment puis-je effectuer une opération OU logique sur plus de deux tableaux NumPy ?

Comment puis-je effectuer une opération OU logique sur plus de deux tableaux NumPy ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 18:41:18999parcourir

How Can I Perform a Logical OR Operation on More Than Two NumPy Arrays?

Fonction logical_or de Numpy avec plusieurs arguments

La fonction logical_or de Numpy est conçue pour comparer deux tableaux et renvoyer un tableau avec des valeurs vraies ou fausses en fonction de les résultats de la comparaison. Cependant, cette fonction ne peut gérer qu’un maximum de deux arguments. Pour trouver l'union de plus de deux tableaux à l'aide de logical_or, nous avons plusieurs options :

Chaînage des appels logical_or

Une approche consiste à chaîner plusieurs appels logical_or. Par exemple :

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)

print(result)

Sortie :

[ True  True  True False]

Cette méthode fonctionne en combinant séquentiellement les tableaux et en exécutant un logical_or sur eux un par un.

Utilisation réduire

Une manière plus concise de combiner plusieurs appels logical_or consiste à utiliser Fonction de réduction de NumPy :

result = np.logical_or.reduce((x, y, z))

print(result)

Sortie :

[ True  True  True False]

reduce applique une opération spécifiée (dans ce cas, logical_or) sur une séquence donnée de tableaux.

Réduire de Python

Alternativement, Python fournit également une fonction de réduction qui peut être utilisé :

from functools import reduce

result = reduce(np.logical_or, (x, y, z))

print(result)

Sortie :

[ True  True  True False]

La réduction de Python est moins couramment utilisée dans de tels cas, car il existe souvent des alternatives plus simples disponibles.

Utiliser n'importe quelle fonction

NumPy peut également être utilisée pour trouver l'union de plusieurs tableaux, bien qu'il nécessite un argument d'axe explicite pour spécifier la dimension le long de laquelle effectuer l'opération :

result = np.any((x, y, z), axis=0)

print(result)

Sortie :

[ True  True  True False]

any renvoie un tableau avec des valeurs vraies ou fausses, indiquant si un élément le long de l'axe spécifié est vrai.

De même, logical_and et d'autres fonctions logiques fonctionnent de la même manière, permettant le chaînage, la réduction et toute opération pour combiner plus de deux arguments.

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