Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python numpy.square vs **

Tags:

python

numpy

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.

Any differences in efficiency of execution?

An example for 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]]) 
like image 597
Skeppet Avatar asked Mar 31 '15 06:03

Skeppet


People also ask

What happens when you square a NumPy array?

square() method is used to find the square of every element in a given array. The numpy square() method takes four parameters: arr, out, where, and dtype, and returns a new array with an argument value as the square of the source array elements.

What is NP squeeze?

squeeze() function is used when we want to remove single-dimensional entries from the shape of an array.

What is NP inner?

inner() Advertisements. This function returns the inner product of vectors for 1-D arrays. For higher dimensions, it returns the sum product over the last axes.


2 Answers

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 
like image 184
saimadhu.polamuri Avatar answered Oct 11 '22 15:10

saimadhu.polamuri


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.

like image 30
foehnx Avatar answered Oct 11 '22 14:10

foehnx