Gibt es einen Unterschied zwischen numpy.square
und den Operator **
auf einem Numpy-Array?Python numpy.square vs **
Von dem was ich sehe, ergibt es das gleiche Ergebnis.
Unterschiede in der Effizienz der Ausführung?
Ein Beispiel zur Verdeutlichung:
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]])
Verwenden 'timeit' zu überprüfen, welche ist schneller, wenn dies ist, was Sie nach. – Marcin
Sie sind nicht ganz gleich, 'np.square()' tut eine elementweise Quadrierung, während einige Klassen z. matrix Der Operator '__pow __()' macht etwas anderes. Für die Array-Klasse sind sie gleich. Ändern Sie "Array" in "Matrix" und sehen Sie den Unterschied. – AChampion
Außerdem kann x ** 2 (wobei x ein numpy Array ist) Ihnen einige negative Elemente geben, während np.square (x) nicht – BlackBear