Python numpy.square vs **
Est-il une différence entre numpy.square
et à l'aide de la **
opérateur sur un tableau Numpy?
De ce que je peux voir, il donne le même résultat.
Des différences dans l'efficacité de l'exécution?
Un exemple pour la clarification:
In [1]: import numpy as np
In [2]: A = np.array([[2, 2],[2, 2]])
In [3]: np.square(A)
Out[3]:
array([[4, 4],
[4, 4]])
In [4]: A ** 2
Out[4]:
array([[4, 4],
[4, 4]])
Utilisation
Ils ne sont pas tout à fait la même,
Aussi, x**2 (où x est un tableau numpy) peut vous donner quelques éléments négatifs, tandis que les np.carré(x) n'a pas
timeit
pour vérifier lequel est le plus rapide, si c'est ce que vous êtes après.Ils ne sont pas tout à fait la même,
np.square()
un élément sage quadrature, alors que certaines classes, par exemple, la matrice de la __pow__()
opérateur fait quelque chose de différent. Pour le tableau de la classe, ils sont les mêmes. Changement array
à matrix
et voir la différence.Aussi, x**2 (où x est un tableau numpy) peut vous donner quelques éléments négatifs, tandis que les np.carré(x) n'a pas
OriginalL'auteur Skeppet | 2015-03-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vérifier le temps d'exécution pour obtenir l'image claire de il
np.carré pourrait être plus rapide avec de grandes matrices, aussi:
sq = np.square %timeit sq(A)
->680ns
OriginalL'auteur saimadhu.polamuri
Pour la plupart des appareils, vous donnera les mêmes résultats.
Généralement la norme pythonic un*ou un**2 est plus rapide que la numpy.carré() ou numpy.pow(), mais les fonctions de numpy sont souvent plus souples et précis.
Si vous effectuez des calculs qui doivent être très précis, s'en tenir à numpy et probablement même utiliser d'autres types de données (float96).
Pour l'utilisation normale d'un**2 va faire un bon travail et de la façon la plus rapide de l'emploi de numpy.
Le gars en ce fil a donné quelques bons exemples à une des questions similaires.
**
d'un tableau numpy est juste sucre syntaxique pour ndarray.__pow__().droit, j'ai été assez claire sur le type de l'argument (numpy ou pas)
OriginalL'auteur foehnx