Convert NumPy array to 0 or 1 based on threshold

前端 未结 2 983
清歌不尽
清歌不尽 2020-11-29 05:55

I have an array below:

a=np.array([0.1, 0.2, 0.3, 0.7, 0.8, 0.9])

What I want is to convert this vector to a binary vector based on a thres

2条回答
  •  时光说笑
    2020-11-29 06:31

    np.where

    np.where(a > 0.5, 1, 0)
    # array([0, 0, 0, 1, 1, 1])
    

    Boolean basking with astype

    (a > .5).astype(int)
    # array([0, 0, 0, 1, 1, 1])
    

    np.select

    np.select([a <= .5, a>.5], [np.zeros_like(a), np.ones_like(a)])
    # array([ 0.,  0.,  0.,  1.,  1.,  1.])
    

    Special case: np.round

    This is the best solution if your array values are floating values between 0 and 1 and your threshold is 0.5.

    a.round()
    # array([0., 0., 0., 1., 1., 1.])
    

提交回复
热议问题