Numpy array element-wise division (1/x)

后端 未结 3 866
生来不讨喜
生来不讨喜 2020-12-20 12:58

My question is very simple, suppose that I have an array like

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

and I\'d like to get an array like

<         


        
相关标签:
3条回答
  • 2020-12-20 13:27

    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. / array
    array([ 1.        ,  0.5       ,  0.33333333,  0.25      ])
    
    0 讨论(0)
  • 2020-12-20 13:28

    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.

    0 讨论(0)
  • 2020-12-20 13:29

    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))
    
    0 讨论(0)
提交回复
热议问题