Skip to content

Tutorial de NumPy en Python: Crear, Manipular y Visualizar Arrays

Updated on

Si está trabajando con conjuntos de datos grandes o necesita realizar operaciones matemáticas complejas, NumPy es una herramienta esencial en su conjunto de herramientas de ciencia de datos. NumPy le permite crear y manipular arrays multidimensionales de manera eficiente, lo que lo convierte en una biblioteca básica para la computación científica y el aprendizaje automático.

En este tutorial, le mostraremos cómo comenzar con NumPy en Python. Cubriremos la instalación, la difusión, la indexación, el rebanado y la visualización, con consejos para optimizar el rendimiento y solucionar errores. ¡Comencemos!

¿Desea crear rápidamente visualizaciones de datos en Python?

PyGWalker es un proyecto de Python de código abierto que puede ayudar a acelerar el flujo de trabajo de análisis y visualización de datos directamente dentro de un entorno basado en Jupyter Notebook.

PyGWalker (opens in a new tab) convierte su Pandas DataFrame (o Polars DataFrame) en una interfaz de usuario visual donde puede arrastrar y soltar variables para crear gráficas con facilidad. Simplemente use el siguiente código:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Puede ejecutar PyGWalker ahora mismo con estos cuadernos en línea:

¡Y no olvide darnos una ⭐️ en GitHub!

Ejecutar PyGWalker en el cuaderno de Kaggle (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)Darle una ⭐️ a PyGWalker en GitHub (opens in a new tab)
Ejecutar PyGWalker en el cuaderno de Kaggle (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)

¿Qué es NumPy y por qué es importante en la ciencia de datos?

NumPy es una biblioteca para computación numérica en Python. Proporciona objetos de arrays multidimensionales de alto rendimiento y herramientas para trabajar con estos arrays. Los arrays de NumPy permiten realizar operaciones matemáticas en conjuntos de elementos completos a la vez, lo que los hace mucho más rápidos que las listas tradicionales de Python.

NumPy es esencial en la ciencia de datos porque permite la manipulación eficiente de conjuntos de datos grandes y operaciones numéricas. Los arrays de NumPy se utilizan mucho en algoritmos de aprendizaje automático, procesamiento de imágenes y simulaciones científicas.

¿Cómo instalar NumPy en mi computadora?

Antes de comenzar con NumPy, asegurémonos de que esté instalado en su computadora. Puede instalar NumPy utilizando pip, el instalador de paquetes para Python.

pip install numpy

Una vez que NumPy esté instalado, puede importarlo a su entorno de Python usando:

import numpy as np

Operaciones con arrays de NumPy

Comencemos creando un array de NumPy. Crearemos un array bidimensional, o matriz, lleno de números aleatorios utilizando la función numpy.random.rand().

import numpy as np
 
# Crear un array de 3x3 lleno de números aleatorios entre 0 y 1
arr = np.random.rand(3, 3)
 
print(arr)

Esto dará como resultado algo como:

array([[0.5488135 , 0.71518937, 0.60276338],
       [0.54488318, 0.4236548 , 0.64589411],
       [0.43758721, 0.891773  , 0.96366276]])

Ahora que tenemos un array de NumPy, realicemos algunas operaciones en él. NumPy admite muchas operaciones matemáticas, como suma, resta, multiplicación y división.

# Sumar 10 a cada elemento del array
arr = arr + 10
 
# Multiplicar cada elemento del array por 2
arr = arr * 2
 
# Dividir cada elemento del array por 3
arr = arr / 3
 
print(arr)

Esto dará como resultado:

array([[6.22202665, 6.61503667, 6.47785626],
       [6.6808859 , 6.49408332, 6.75637531],
       [6.1817823 , 7.63341086, 7.92046462]])

Indexación de arrays de NumPy

La indexación de arrays de NumPy es similar a la indexación de listas de Python. Puede acceder a elementos de un array utilizando corchetes y especificando los índices.

import numpy as np
 
# Crear un array bidimensional de números del 0 al 15
arr = np.arange(16).reshape((4,4))
 
# Imprimir todo el array
print(arr)
 
# Imprimir el elemento en la fila 2, columna 3
print(arr[2, 3])
 
# Imprimir la primera fila del array
print(arr[0, :])
 
# Imprimir la última columna del array
print(arr[:, 3])
 
# Imprimir el subarray desde las filas 1 a 3 y las columnas 1 a 3
print(arr[1:4, 1:4])

Esto dará como resultado:

array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])

11

[0 1 2 3]

[ 3  7 11 15]

[[ 5  6  7]
 [ 9 10 11]
 [13 14 15]]

NumPy vs. pandas

NumPy y pandas son bibliotecas esenciales en la ciencia de datos, pero cumplen diferentes propósitos. NumPy se utiliza para la computación numérica y la manipulación de arrays, mientras que pandas se utiliza para la manipulación y el análisis de datos. NumPy es más eficiente para operaciones numéricas en matrices grandes, mientras que pandas sobresale en el manejo de datos tabulares. NumPy se utiliza típicamente para el preprocesamiento de datos antes de alimentarlos a algoritmos de aprendizaje automático, mientras que pandas se utiliza para trabajar con conjuntos de datos en un flujo de trabajo basado en datos.

Tipos de datos en NumPy

Las matrices de NumPy pueden tener diferentes tipos de datos, incluyendo enteros, números de punto flotante y booleanos. Puedes especificar el tipo de datos de una matriz al crearla utilizando el parámetro dtype.

import numpy as np
 
arr_int = np.array([1, 2, 3])   # Matriz de enteros
arr_float = np.array([1.0, 2.0, 3.0])   # Matriz de punto flotante
arr_bool = np.array([True, False, True])   # Matriz booleana
 
# Imprimir los tipos de datos de las matrices
print(arr_int.dtype)
print(arr_float.dtype)
print(arr_bool.dtype)

Esto dará como resultado:

int64
float64
bool

Broadcast en NumPy

Broadcasting es una función poderosa en NumPy que permite realizar operaciones matemáticas en matrices con formas diferentes. Al realizar operaciones en dos matrices, NumPy compara sus formas elemento a elemento y transmite la matriz más pequeña para que coincida con la matriz más grande.

import numpy as np
 
# Crear una matriz de 3x3 llena de 1s
arr = np.ones((3, 3))
 
# Sumar 2 a cada elemento de la matriz
arr = arr + 2
 
# Multiplicar por 3 cada elemento par de la matriz
arr[arr % 2 == 0] *= 3
 
print(arr)

Esto dará como resultado:

array([[ 9.,  3.,  9.],
       [ 3.,  9.,  3.],
       [ 9.,  3.,  9.]])

Cómo utilizar las matrices de NumPy en el aprendizaje automático

Las matrices de NumPy desempeñan un papel crítico en los algoritmos de aprendizaje automático. Los modelos de aprendizaje automático reciben datos en forma de matrices, y NumPy proporciona diversas herramientas para el preprocesamiento y la manipulación de estos datos.

Por ejemplo, al trabajar con datos de imágenes, las matrices de NumPy pueden representar los píxeles de una imagen como una matriz multidimensional. Esta matriz se puede alimentar a un modelo de aprendizaje automático para entrenamiento y predicción.

NumPy también proporciona funciones para dividir los datos en subconjuntos de entrenamiento y prueba, escalar datos y codificar variables categóricas.

Técnicas eficientes de manipulación de matrices en NumPy

NumPy proporciona diversas funciones y técnicas para la manipulación eficiente de matrices. Aquí tienes algunos ejemplos:

  • Cambiar la forma de las matrices: Utiliza la función reshape para cambiar la forma de una matriz y adaptarla a los requisitos de una operación o algoritmo específico.

  • Apilar matrices: Utiliza las funciones hstack, vstack y dstack para apilar matrices en sentido horizontal, vertical y en profundidad.

  • Transponer matrices: Utiliza la función transpose para intercambiar las filas y columnas de una matriz bidimensional.

  • Ordenar matrices: Utiliza la función sort para ordenar los elementos de una matriz en orden ascendente o descendente.

Consejos para solucionar errores comunes de matrices en NumPy

Trabajar con matrices de NumPy puede ser desafiante, especialmente al trabajar con conjuntos de datos grandes. Aquí tienes algunos consejos para solucionar errores comunes de matrices de NumPy:

  • Verifica la forma de tus matrices: Asegúrate de que las matrices con las que estás trabajando tengan la forma correcta para la operación que estás realizando.

  • Cambia el tipo de datos de tus matrices: Asegúrate de que tus matrices tengan el tipo de datos correcto para la operación matemática que estás realizando.

  • Utiliza el broadcasting de manera inteligente: Si bien el broadcasting puede ser poderoso, también puede llevar a resultados inesperados. Verifica las dimensiones transmitidas de tus matrices antes de realizar una operación.

  • Verifica los valores NaN o Infinity: Los valores NaN (no es un número) e Infinity pueden causar errores en operaciones matemáticas. Verifica tus matrices en busca de estos valores antes de realizar una operación.

Conclusión

NumPy es una biblioteca esencial en Python para trabajar con conjuntos de datos grandes y operaciones numéricas. En este tutorial, cubrimos la instalación, el broadcasting, la indexación, el slicing y la visualización, con consejos para optimizar el rendimiento y solucionar errores.

Recuerda tener en cuenta estos consejos cuando trabajes con matrices de NumPy y consulta siempre la documentación cuando tengas dudas. ¡Feliz programación!