Python: notaci贸n de corte en matrices NumPy

    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.

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *