How to convert singleton array to a scalar value in Python?

前端 未结 5 1244
灰色年华
灰色年华 2021-01-03 20:51

Suppose I have 1x1x1x1x... array and wish to convert it to scalar?

How do I do it?

squeeze does not help.

import numpy as np

ma         


        
相关标签:
5条回答
  • 2021-01-03 20:59
    >>> float(np.array([[[[1]]]]))
    1.
    
    0 讨论(0)
  • 2021-01-03 21:08

    You can use the item() function:

    import numpy as np
    
    matrix = np.array([[[[7]]]])
    print(matrix.item())
    

    Output

    7
    
    0 讨论(0)
  • 2021-01-03 21:08

    You can index with the empty tuple after squeezing:

    x = np.array([[[1]]])
    s = np.squeeze(x)  # or s = x.reshape(())
    val = s[()]
    print val, type(val)
    
    0 讨论(0)
  • 2021-01-03 21:11

    Numpy has a function explicitly for this purpose: asscalar

    >>> np.asscalar(np.array([24]))
    24
    

    This uses item() in the implementation.

    I guess asscalar was added to more explicit about what's going on.

    0 讨论(0)
  • 2021-01-03 21:16

    You can use np.take -

    np.take(matrix,0)
    

    Sample run -

    In [15]: matrix = np.array([[67]])
    
    In [16]: np.take(matrix,0)
    Out[16]: 67
    
    In [17]: type(np.take(matrix,0))
    Out[17]: numpy.int64
    
    0 讨论(0)
提交回复
热议问题