Python numpy.square vs **

前端 未结 2 1244
灰色年华
灰色年华 2021-02-05 02:43

Is there a difference between numpy.square and using the ** operator on a Numpy array?

From what I can see it yields the same result.

相关标签:
2条回答
  • 2021-02-05 03:20

    You can check the execution time to get clear picture of it

    In [2]: import numpy as np
    In [3]: A = np.array([[2, 2],[2, 2]])
    In [7]: %timeit np.square(A)
    1000000 loops, best of 3: 923 ns per loop
    In [8]: %timeit A ** 2
    1000000 loops, best of 3: 668 ns per loop
    
    0 讨论(0)
  • 2021-02-05 03:39

    For most appliances, both will give you the same results. Generally the standard pythonic a*a or a**2 is faster than the numpy.square() or numpy.pow(), but the numpy functions are often more flexible and precise. If you do calculations that need to be very accurate, stick to numpy and probably even use other datatypes float96.

    For normal usage a**2 will do a good job and way faster job than numpy. The guys in this thread gave some good examples to a similar questions.

    0 讨论(0)
提交回复
热议问题