Indexar y hacer slicing de arrays

Introducción a NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Indexar arrays 1D

array = np.array([2, 4, 6, 8, 10])
array[3]
8
Introducción a NumPy

Indexar elementos en 2D

Un sudoku con un único número seleccionado en la tercera fila y quinta columna

 

 

sudoku_game[2, 4]
6
Introducción a NumPy

Indexar filas en 2D

Un sudoku con la primera fila seleccionada

 

 

sudoku_game[0]
array([0, 0, 4, 3, 0, 0, 2, 0, 9])
Introducción a NumPy

Indexar columnas en 2D

Un sudoku con la cuarta columna seleccionada

 

 

sudoku_game[:, 3]
array([3, 0, 0, 0, 0, 0, 0, 5, 9])
Introducción a NumPy

Slicing en arrays 1D

array = np.array([2, 4, 6, 8, 10])
array[2:4]
array([6,  8])
Introducción a NumPy

Slicing en 2D

Un sudoku con las nueve casillas centrales seleccionadas: columnas 4 a 6 y filas 4 a 6

 

 

sudoku_game[3:6, 3:6]
array([[0, 0, 2],
       [0, 0, 7],
       [0, 8, 3]])
Introducción a NumPy

Slicing con pasos

Un sudoku con solo las esquinas de las nueve casillas centrales seleccionadas

 

 

sudoku_game[3:6:2, 3:6:2]
array([[0, 2],
       [0, 3]])
Introducción a NumPy

Ordenar arrays

Antes de ordenar: Un sudoku desordenado

np.sort(sudoku_game)
array([[0, 0, 0, 0, 0, 2, 3, 4, 9],
       [0, 0, 0, 0, 0, 0, 1, 5, 9],
       [0, 0, 0, 0, 0, 3, 4, 6, 7],
       [0, 0, 0, 0, 0, 2, 6, 7, 8],
       [0, 0, 0, 0, 0, 1, 4, 7, 9],
       [0, 0, 0, 0, 0, 0, 3, 5, 8],
       [0, 0, 0, 0, 0, 0, 1, 5, 6],
       [0, 0, 0, 0, 3, 5, 6, 8, 9],
       [0, 0, 0, 0, 1, 2, 3, 4, 9]])
Introducción a NumPy

Orden de ejes

 

Gráfico que muestra que el eje 0 va a lo largo de las filas y el eje 1 a lo largo de las columnas

 

Gráfico que muestra que el número uno parece una columna

Introducción a NumPy

Ordenar por eje

np.sort(sudoku_game)
array([[0, 0, 0, 0, 0, 2, 3, 4, 9],
       [0, 0, 0, 0, 0, 0, 1, 5, 9],
       [0, 0, 0, 0, 0, 3, 4, 6, 7],
       [0, 0, 0, 0, 0, 2, 6, 7, 8],
       [0, 0, 0, 0, 0, 1, 4, 7, 9],
       [0, 0, 0, 0, 0, 0, 3, 5, 8],
       [0, 0, 0, 0, 0, 0, 1, 5, 6],
       [0, 0, 0, 0, 3, 5, 6, 8, 9],
       [0, 0, 0, 0, 1, 2, 3, 4, 9]])
np.sort(sudoku_game, axis=0)
array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 2, 0, 0, 2, 1, 0, 1],
       [0, 4, 3, 0, 0, 3, 2, 0, 3],
       [0, 5, 4, 3, 1, 7, 3, 4, 5],
       [1, 7, 5, 5, 6, 8, 4, 8, 7],
       [6, 9, 6, 9, 8, 9, 6, 9, 9]])
Introducción a NumPy

¡Vamos a practicar!

Introducción a NumPy

Preparing Video For Download...