funcion - numpy python 3
Seleccionar elementos de la matriz numpy a través de la matriz de máscara booleana (1)
Probablemente quieras algo como esto:
>>> a = np.array([True, True, True, False, False])
>>> b = np.array([[1,2,3,4,5], [1,2,3,4,5]])
>>> b[:,a]
array([[1, 2, 3],
[1, 2, 3]])
Tenga en cuenta que para que este tipo de indexación funcione, debe ser un ndarray
, como si estuviera usando, no una list
, o interpretará False
y True
como 0
y 1
y le dará esas columnas:
>>> b[:,[True, True, True, False, False]]
array([[2, 2, 2, 1, 1],
[2, 2, 2, 1, 1]])
Supongo que la respuesta está cerca, pero no puedo verla :-(
Tengo una matriz de máscara booleana de longitud n:
a = np.array([True, True, True, False, False])
Tengo una matriz 2D con n columnas:
b = np.array([[1,2,3,4,5], [1,2,3,4,5]])
Quiero una nueva matriz que contenga solo los valores "Verdaderos", por ejemplo:
c = ([[1,2,3], [1,2,3]])
c = a * b
no funciona porque contiene también "0" para las columnas falsas lo que no quiero
c = np.delete(b, a, 1) does not work
¿Alguna sugerencia? ¡Gracias!