Maison >développement back-end >Tutoriel Python >Comment effectuer le logical_or de NumPy sur plus de deux tableaux ?

Comment effectuer le logical_or de NumPy sur plus de deux tableaux ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-29 15:34:10649parcourir

How to Perform NumPy's logical_or on More Than Two Arrays?

Numpy logical_or pour plus de deux arguments

La fonction logical_or de Numpy ne peut comparer que deux tableaux à la fois. Pour trouver l'union de plus de deux tableaux, vous avez plusieurs options.

Chaînage des appels logical_or

Vous pouvez chaîner plusieurs appels logical_or ensemble, mais cela peut devenir fastidieux. Par exemple :

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)

Utiliser réduire

NumPy fournit une fonction de réduction qui peut généraliser les opérations de chaînage. Par exemple :

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

Cela renverra un tableau où chaque élément est l'union des éléments correspondants dans les tableaux d'entrée.

Utilisation de functools.reduce de Python

La fonction functools.reduce de Python peut également être utilisée pour cela objectif :

functools.reduce(np.logical_or, (x, y, z))

Cependant, la réduction de NumPy est généralement plus efficace.

Utiliser np.any

La fonction np.any de NumPy peut également être utilisé pour trouver le syndicat. Cependant, il doit être utilisé avec un argument d'axe :

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

Cela renverra un tableau où chaque élément est l'union des éléments correspondants dans les tableaux d'entrée le long de l'axe spécifié.

Remarque : Ces techniques s'appliquent également à la fonction logical_and de Numpy pour trouver l'intersection de plus de deux tableaux.

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