Cortando un conjunto unidimensional
Para recuperar un solo valor, se utiliza la indexación. De manera similar, para recuperar una colección de valores, se usaría el rebanado. Por ejemplo, permítanme definir una matriz unidimensional
12array1 = np.arange(9)array1
pitón
Salida:
1array([0,1,2,3,4,5,6,7,8])
pitón
Esta es la sintaxis para cortar la matriz:
1array1[3:6]
pitón
Salida:
1array([3,4,5])
pitón
El índice «3» representa el elemento inicial de la rebanada y es inclusivo. El índice «6» representa el elemento de parada de la rebanada y es exclusivo. Esa es la razón por la que no obtuvimos el valor «6» en la salida.
Si no especificas el índice de inicio y el de parada, obtendrás todos los valores.
1array1[:]
pitón
Salida:
1array([0,1,2,3,4,5,6,7,8])
pitón
Eso es porque si faltan los índices, por defecto, Numpy inserta los índices de inicio y parada que seleccionan todo el conjunto. Así que escribir array1[:] es equivalente a escribir array1[0:9]
Puede ampliar este concepto para incluir sólo el índice inicial. En este caso, la rebanada incluye todos los elementos desde el índice inicial hasta el final del conjunto. Por ejemplo:
1array1[4:]
pitón
Salida:
1array([4,5,6,7,8])
pitón
O, alternativamente, especificar sólo el índice de parada.
1array1[:7]
pitón
Salida:
1array([0,1,2,3,4,5,6])
pitón
Como era de esperar, la rebanada incluye todos los elementos desde el inicio del conjunto hasta el valor indexado. Las reglas para seleccionar el elemento de inicio o de parada siguen siendo válidas.
Uso de índices negativos
También puede usar valores negativos para mayor flexibilidad. Para entender cómo funcionan los valores negativos, mira esta imagen de abajo:
Cada elemento de un conjunto puede ser referenciado con dos índices. Por ejemplo, tanto el «3» como el «-6» pueden ser usados para recuperar el valor «40». Primero declaremos una matriz con valores similares:
12array1 = np.array([10,20,30,40,50,60,70,80,90])array1
pitón
Salida:
1array([10,20,30,40,50,60,70,80,90])
pitón
Usar tanto «3» como «-6» da el mismo valor.
1array1[3]
pitón
Salida:
140
python
1array1[-6]
pitón
Salida:
140
pitón
Puedes usar este truco para cortar la matriz también. Por ejemplo,
1array1[3:-2]
pitón
Salida:
1array([40,50,60,70])
pitón
Y aquí hay una representación visual de cómo funciona:
Intentémoslo una vez más. Esta vez usemos un valor negativo para ambos índices.
1array1[-3:-1]
pitón
Salida:
1array([70,80])
pitón
Pero tenga en cuenta que no puede cambiar el orden de los índices. En otras palabras, la operación de corte no puede viajar hacia atrás. Si intentas hacer eso, obtendrás una matriz vacía como salida. Por ejemplo:
1array1[-1:-3]
pitón
Salida:
1array([], dtype=int32)
pitón
Usando el índice de pasos
También puede incluir un índice de pasos si desea saltarse algunos elementos en su operación de corte. Por ejemplo:
1array1[2:6:3]
pitón
Salida:
1array([30,60])
pitón
2:6$0027 indican las posiciones de índice para la operación de corte. El valor $00273$0027 indica la operación de corte al paso tres elementos después de cada selección.
O también puedes hacer algo como esto:
1array1[:7:2]
pitón
Salida:
1array([10,30,50,70])
pitón
Aquí, $0027:7$0027 significa rebanada de $00270:7$0027 y el último valor $00272$0027 indica una operación de paso a paso de dos elementos después de cada selección.
Cortando un conjunto bidimensional
Hablemos de cortar una matriz bidimensional. Tengo este arreglo de matriz1
12array1 = np.arange(16).reshape(4,4)array1
pitón
Salida:
1234array([[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15]])
pitón
Cortar una matriz bidimensional es muy similar a cortar una matriz unidimensional. Sólo tienes que usar una coma para separar el corte de la fila y el corte de la columna. Por ejemplo:
1array1[0:2,1:3]
pitón
Salida:
12array([[1,2],[5,6]]])
pitón
Aquí hay una representación pictórica:
Del mismo modo, puede extenderse a matrices dimensionales más altas.