matrices funcion ejemplos arange python numpy indexing boolean mask

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!