Indexación avanzada de NumPy

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá sobre el índice avanzado de NumPy, que es una técnica utilizada para seleccionar elementos aleatorios de diferentes filas y columnas de una ndarray cuando los elementos que desea elegir no están en ningún orden particular.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importando las bibliotecas necesarias y creando la matriz de NumPy

Primero, necesitamos importar la biblioteca numpy y crear una matriz de NumPy en la que realizaremos el índice avanzado.

import numpy as np

x = np.array([[11, 28], [23, 84], [95, 56]])
print("La matriz original")
print(x)

En el código anterior, hemos importado la biblioteca numpy y creado una matriz de NumPy que usaremos para el índice avanzado.

Indexación entera

Con la indexación entera, podemos seleccionar elementos arbitrarios basados en el índice N-dimensional. Cada matriz entera se utiliza para representar el número de índices en esa dimensión.

y = x[[0, 1, 2], [0, 0, 1]]
print("La salida después de la indexación entera")
print(y)

En el código anterior, estamos realizando indexación entera en la matriz de NumPy x y creando una nueva matriz y que contendrá los elementos seleccionados. Estamos seleccionando un elemento de la columna especificada de cada fila de la matriz de NumPy x. El índice de fila contiene todos los números de fila, y el índice de columna especifica el elemento a ser seleccionado.

Indexación booleana

La indexación booleana se utiliza cuando queremos seleccionar elementos de una ndarray basados en alguna condición utilizando operadores de comparación u otro operador.

print("Los elementos mayores que 11 son:")
print(x[x > 11])

En el código anterior, estamos realizando indexación booleana en la matriz de NumPy x. Estamos devolviendo los elementos que son mayores que 11 de la matriz de NumPy x.

Combinando indexación avanzada y básica

Podemos combinar la indexación avanzada y la básica utilizando una rebanada (:) o tres puntos suspensivos (...) con una matriz de índices.

z = x[1:4, 1:3]
print("Después de utilizar la rebanada básica")
print(z)

y = x[1:4, [1, 2]]
print("Después de la rebanada utilizando el índice avanzado para la columna")
print(y)

En el código anterior, estamos rebanando la matriz de NumPy x. Estamos utilizando la rebanada básica y la indexación avanzada para la columna.

Eliminar valores de Not a Number

Podemos eliminar los valores de Not a Number (NaN) utilizando el operador de complemento (~).

a = np.array([np.nan, 1, 12, np.nan, 3, 41, 54])
print("Después de omitir los NaN, la matriz de salida es:")
print (a[~np.isnan(a)])

En el código anterior, estamos eliminando los valores de Not a Number (NaN) de la matriz de NumPy a utilizando el operador de complemento (~).

Eliminar números no complejos

Podemos filtrar los números no complejos de una matriz utilizando la función iscomplex.

a = np.array([1, 2+6j, 5, 3.5+5j])
print("Después de filtrar los números no complejos :")
print (a[np.iscomplex(a)])

En el código anterior, estamos filtrando los números no complejos de la matriz de NumPy a utilizando la función iscomplex.

Resumen

En esta práctica, has aprendido sobre diferentes tipos de indexación avanzada de los elementos de una ndarray en la biblioteca NumPy. Has visto algunos ejemplos para diferentes casos de uso de la indexación avanzada en NumPy. Con esta técnica, puedes seleccionar elementos aleatorios de diferentes filas y columnas de una matriz de NumPy.