Fonctions de vectorisation pour les tableaux Numpy
Pour mapper efficacement une fonction sur un tableau numpy, vous pouvez exploiter la puissance de la vectorisation, qui vous permet pour effectuer des opérations élément par élément sur le tableau. C'est beaucoup plus rapide que d'utiliser des approches basées sur des boucles comme la compréhension de listes.
Fonctions natives NumPy
Si la fonction que vous avez l'intention de mapper est déjà vectorisée en tant que fonction NumPy, comme np.square() pour la mise au carré des éléments, il est fortement recommandé de l'utiliser. Ce sera nettement plus rapide que les autres méthodes.
Vectorisation avec la vectorisation de NumPy
NumPy fournit la fonction de vectorisation pour les fonctions de vectorisation. Il enveloppe votre fonction pour permettre des opérations par éléments sur les tableaux :
import numpy as np def f(x): return x ** 2 vf = np.vectorize(f) x = np.array([1, 2, 3, 4, 5]) squares = vf(x)
Une autre alternative consiste à utiliser vectorize sans initialiser un wrapper de fonction :
squares = np.vectorize(f)(x)
Autres méthodes de vectorisation
Autres méthodes de vectorisation include :
Performance Considérations
Bien que toutes ces méthodes puissent vectoriser des fonctions, leurs performances peuvent varier. Des benchmarks ont montré que l'utilisation des fonctions natives de NumPy est la plus rapide si elles sont disponibles. Dans d'autres cas, vectorize et fromiter fonctionnent généralement mieux que np.array(list(map(f, x))).
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!