Tengo una matriz:
e = np.array([[ 0, 1, 2, 3, 5, 6, 7, 8], [ 4, 5, 6, 7, 5, 3, 2, 5], [ 8, 9, 10, 11, 4, 5, 3, 5]])
Quiero extraer la matriz por sus columnas en RANGO, si quiero tomar la columna en el rango 1 hasta 5, volverá
e = np.array([[ 1, 2, 3, 5, ], [ 5, 6, 7, 5, ], [ 9, 10, 11, 4, ]])
¿Cómo resolverlo? Gracias
Puedes usar e [:, 1: 5] para recuperar lo que deseas.
In [1]: import numpy as np In [2]: e = np.array([[ 0, 1, 2, 3, 5, 6, 7, 8], ...: [ 4, 5, 6, 7, 5, 3, 2, 5], ...: [ 8, 9, 10, 11, 4, 5, 3, 5]]) In [3]: e[:, 1:5] Out[3]: array([[ 1, 2, 3, 5], [ 5, 6, 7, 5], [ 9, 10, 11, 4]])
https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
Los índices de fila y columna con nudos comienzan a contar en 0.
Las filas se especifican primero y luego la columna con una coma para separar la fila de la columna.
El “:” (dos puntos) se usa para atajar todas las filas o todas las columnas cuando se usa solo.
Cuando el especificador de fila o columna tiene un rango, entonces “:” se empareja con números que especifican el rango de inicio inclusivo y el rango de final exclusivo.
Por ejemplo
import numpy as np np_array = np.array( [ [ 1, 2, 3, ], [ 4, 5, 6, ], [ 7, 8, 9 ] ] ) first_row = np_array[0,:] first_row output: array([1, 2, 3]) last_column = np_array[:,2] last_column output: array([3, 6, 9]) first_two_vals = np_array[0,0:2] first_two_vals output: array([1, 2])