Función de partición 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 la función numpy.partition() de la biblioteca Numpy. Esta función se utiliza para dividir la matriz de entrada de acuerdo con los argumentos dados y devuelve una copia de la matriz de entrada particionada. La función numpy.partition() es útil cuando queremos encontrar rápidamente el k-ésimo elemento más pequeño o más grande en una matriz, sin ordenar toda la matriz.

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.

Importar la biblioteca Numpy

En primer lugar, necesitamos importar la biblioteca Numpy, que se utiliza comúnmente para trabajar con matrices y arreglos en Python.

import numpy as np

Crear la matriz de entrada

A continuación, crearemos una matriz de entrada utilizando el método array() de Numpy. Esta matriz será el punto de partida para utilizar la función numpy.partition() sobre ella.

inp_ar = np.array([2, 0, 1, 5, 4, 9, 78, 34])
print("La matriz de entrada:")
print(inp_ar)

Particionar la matriz

Ahora, usaremos la función numpy.partition() para particionar la matriz de entrada inp_ar alrededor del quinto número más pequeño. También imprimiremos la matriz particionada resultante.

output = np.partition(inp_ar, 5)
print("La matriz particionada:")
print(output)

Particionar una matriz con múltiples valores k-ésimos

La función numpy.partition() también permite la partición alrededor de múltiples valores k-ésimos. En este ejemplo, particionaremos una matriz alrededor del primer y tercer números más pequeños.

arr = np.array([7, 4, 8, 1, 10, 13])
print("La matriz de entrada:")
print(arr)

output = np.partition(arr, (1, 3))
print("La matriz particionada:")
print(output)

Especificar eje, tipo y orden

La función numpy.partition() también tiene parámetros opcionales que te permiten especificar el eje por el que se debe particionar, el tipo de clasificación que se debe realizar y el orden en el que se deben comparar los campos. En este ejemplo, usaremos estos parámetros opcionales para particionar una matriz 2D a lo largo del segundo eje y especificar el tipo y el orden de clasificación.

arr_2d = np.array([[4, 5, 2], [3, 1, 6]])
print("La matriz 2D de entrada:")
print(arr_2d)

output = np.partition(arr_2d, 1, axis=1, kind='heapsort', order=('col1', 'col2', 'col0'))
print("La matriz 2D particionada:")
print(output)

Particionar con un valor k-ésimo negativo

La función numpy.partition() también puede manejar valores negativos del parámetro kth. En este ejemplo, particionaremos una matriz alrededor del segundo número más pequeño en valor negativo.

arr = np.array([9, 3, 4, 1, 6])
print("La matriz de entrada:")
print(arr)

output = np.partition(arr, -2)
print("La matriz particionada:")
print(output)

Resumen

En este laboratorio, aprendiste sobre la función numpy.partition() de la biblioteca Numpy. Cubrimos cómo crear una matriz de entrada, particionarla usando la función numpy.partition(), particionar alrededor de múltiples valores k-ésimos, especificar el eje, el tipo y el orden, y manejar valores k-ésimos negativos. La función numpy.partition() es útil cuando se trabaja con matrices grandes y se desea encontrar rápidamente el k-ésimo elemento más pequeño o más grande sin ordenar toda la matriz.