Tengo una matriz a continuación:
a=np.array([0.1, 0.2, 0.3, 0.7, 0.8, 0.9])
Lo que quiero es convertir este vector en un vector binario basado en un umbral. tome umbral = 0.5 como ejemplo, elemento que mayor que 0.5 se convierte a 1, de lo contrario 0.
El vector de salida debería ser así:
a_output = [0, 0, 0, 1, 1, 1]
Cómo puedo hacer esto
np.where
>>> np.where(a > 0.5, 1, 0) array([0, 0, 0, 1, 1, 1])
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.])