sumar - transpuesta de una matriz en python numpy
¿Cómo puedo cambiar de forma condicional los valores en una matriz numpy teniendo en cuenta los números Nan? (2)
Mi matriz es una matriz 2D y tiene valores numpy.nan además de valores negativos y positivos:
>>> array
array([[ nan, nan, nan, ..., -0.04891211,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan],
...,
[-0.02510989, -0.02520096, -0.02669156, ..., nan,
nan, nan],
[-0.02725595, -0.02715945, -0.0286231 , ..., nan,
nan, nan],
[ nan, nan, nan, ..., nan,
nan, nan]], dtype=float32)
Y quiero reemplazar todos los números positivos con un número y todos los números negativos con otro número.
¿Cómo puedo hacer eso usando python / numpy?
(Para el registro, la matriz es un resultado de la geoimagen, que quiero realizar una clasificación)
El hecho de que tengas np.nan
en tu matriz no debería importar. Solo usa indexación sofisticada:
x[x>0] = new_value_for_pos
x[x<0] = new_value_for_neg
Si quiere reemplazar su np.nans
:
x[np.isnan(x)] = something_not_nan
Más información sobre la indexación elegante de un tutorial y la documentación de NumPy .
Tratar:
a[a>0] = 1
a[a<0] = -1