Numpy array element-wise division (1/x) Numpy array element-wise division (1/x) numpy numpy

Numpy array element-wise division (1/x)


1 / array makes an integer division and returns array([1, 0, 0, 0]).

1. / array will cast the array to float and do the trick:

>>> array = np.array([1, 2, 3, 4])>>> 1. / arrayarray([ 1.        ,  0.5       ,  0.33333333,  0.25      ])


I tried :

inverse=1./array

and that seemed to work...The reason

1/array

doesn't work is because your array is integers and 1/<array_of_integers> does integer division.


Other possible ways to get the reciprocal of each element of an array of integers:

array = np.array([1, 2, 3, 4])

Using numpy's reciprocal:

inv = np.reciprocal(array.astype(np.float32))

Cast:

inv = 1/(array.astype(np.float32))