Python: notación de corte en matrices NumPy

P

Introducción

El término segmentar en programación generalmente se refiere a obtener una subcadena, subtupla o sublista de una cadena, tupla o lista, respectivamente.

Python ofrece una variedad de formas sencillas de dividir no solo estos tres, sino cualquier iterable. Un iterable es, como su nombre indica, cualquier objeto sobre el que se pueda iterar.

En este artículo, repasaremos todo lo que necesita saber sobre Slicing Numpy Arrays en Python.

Rebanado de NumPy Array

La forma más común de cortar una matriz NumPy es usando el : operador con la siguiente sintaxis:

array[start:end]
array[start:end:step]

los start parámetro representa el índice inicial, end es el índice final, y step es el número de elementos sobre los que se “pasa”.

NumPy es un paquete gratuito de Python que ofrece, entre otras cosas, matrices n-dimensionales.

Cortar matrices 1D (unidimensionales) en NumPy se puede hacer con la misma notación que cortar listas regulares en Python:

import numpy as np
arr = np.array([1,2,3,4])
print(arr[1:3:2])
print(arr[:3])
print(arr[::2])

Salida:

[2]
[1 2 3]
[1 3]

Rebanado de matriz 2D NumPy

Una matriz 2D en NumPy es una matriz de matrices, una matriz 3D es una matriz de matrices de matrices y así sucesivamente. Una matriz 2D se puede representar como una matriz así:

import numpy
arr = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(arr)

Imprimamos esta matriz:

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

Cortar una matriz 2D puede dar como resultado una matriz o una matriz. La sintaxis que da como resultado una matriz sería:

arr[startx:endx:stepx, starty:endy:stepy]

La sintaxis que da como resultado una matriz:

arr[startx:endx:stepx, const]
arr[const, starty:endy:stepy]

La utilización de esta sintaxis da como resultado una matriz cuyos elementos son las columnas en el rango de startx a endx en el eje x, y filas en el rango de starty a endy en el eje y de la matriz original:

Echemos un vistazo a cómo podemos cortar esta matriz y en qué resulta el corte:

import numpy

arr = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])
print("The original matrix:")
print(arr)

print("A sliced submatrix:")
print(arr[1:4,2:4])

print("A sliced subarray:")
print(arr[1,:])

print("A sliced submatrix:")
print(arr[:,3:])

print("A sliced subarray:")
print(arr[:,3])

Este segmento de código se imprime:

The original matrix:
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
A sliced submatrix:
[[ 7  8]
 [11 12]
 [15 16]]
A sliced subarray:
[5 6 7 8]
A sliced submatrix:
[[ 4]
 [ 8]
 [12]
 [16]]
A sliced subarray:
[ 4  8 12 16]

Conclusión

Cortar cualquier secuencia en Python es fácil, simple e intuitivo. La indexación negativa ofrece una manera fácil de adquirir los primeros o últimos elementos de una secuencia, o invertir su orden.

En este artículo, hemos cubierto cómo cortar las matrices NumPy de Python.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad