Maison > développement back-end > Tutoriel Python > Comment effectuer efficacement des opérations d'union multi-tableaux avec « logical_or » de NumPy ?

Comment effectuer efficacement des opérations d'union multi-tableaux avec « logical_or » de NumPy ?

Barbara Streisand
Libérer: 2024-12-07 15:15:14
original
315 Les gens l'ont consulté

How to Efficiently Perform Multi-Array Union Operations with NumPy's `logical_or`?

Numpy logical_or pour les opérations d'union multi-tableaux

La fonction logical_or de Numpy opère sur des paires de tableaux, ce qui soulève la question de savoir comment combiner efficacement plusieurs tableaux pour les opérations d'union (de même pour logical_and et les intersections).

Pendant que logical_or lui-même n'accepte que deux arguments, il peut être enchaîné :

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)
# result: [ True,  True,  True,  False]
Copier après la connexion

Une approche plus généralisée consiste à utiliser réduire :

result = np.logical_or.reduce((x, y, z))
# result: [ True,  True,  True,  False]
Copier après la connexion

Cette méthode peut être appliquée aux deux tableaux multidimensionnels et des tuples de tableaux 1D. De plus, functools.reduce de Python peut être utilisé de la même manière :

result = functools.reduce(np.logical_or, (x, y, z))
# result: [ True,  True,  True,  False]
Copier après la connexion

Pour plus de commodité, Numpy fournit any, qui effectue essentiellement une réduction OU logique le long d'un axe :

result = np.any((x, y, z), axis=0)
# result: [ True,  True,  True,  False]
Copier après la connexion

Similaire les principes s'appliquent à logical_and et à d'autres opérateurs logiques, à l'exception de logical_xor, qui n'a pas de fonction all/any-type correspondante.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal