NumPy Tutorials

Guía completa de NumPy Ndarray

Spread the love

NumPy es la piedra angular del cálculo científico en Python, y su potencia reside en gran medida en su objeto de matriz N-dimensional, el ndarray. Dominar los ndarrays es esencial para un uso efectivo de NumPy. Este tutorial proporciona una introducción completa a los ndarrays, cubriendo su creación, atributos y operaciones fundamentales.

Tabla de contenido

Definición de Ndarray

Un ndarray (matriz N-dimensional) de NumPy es un contenedor multidimensional homogéneo que contiene elementos del mismo tipo y tamaño. Considérelo una versión altamente optimizada y sofisticada de una lista de Python, capaz de manejar datos en múltiples dimensiones (1D, 2D, 3D y superiores). A diferencia de las listas de Python, que pueden contener elementos de diferentes tipos de datos, los ndarrays imponen homogeneidad de tipo, lo que resulta en ganancias de rendimiento sustanciales. Esta homogeneidad permite operaciones vectorizadas: aplicar operaciones a toda la matriz simultáneamente en lugar de elemento por elemento, mejorando drásticamente la velocidad.

Características clave de ndarray:

  • Homogéneo: Todos los elementos comparten el mismo tipo de datos.
  • Multidimensional: Representa datos en varias dimensiones (vectores 1D, matrices 2D, tensores 3D, etc.).
  • Tamaño fijo: El tamaño de la matriz se fija al crearse y el cambio de tamaño normalmente implica crear una nueva matriz.
  • Operaciones vectorizadas: Admite operaciones eficientes elemento a elemento y a nivel de matriz.
  • Eficiencia de memoria: Almacena datos en bloques de memoria contiguos, mejorando el rendimiento.

Creación de Ndarray

Crear ndarrays es sencillo usando las funciones de NumPy:


import numpy as np

# Desde una lista
arr_1d = np.array([1, 2, 3, 4, 5])
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# Usando funciones especializadas
arr_zeros = np.zeros((2, 3))  # Matriz de ceros
arr_ones = np.ones((3, 2))   # Matriz de unos
arr_arange = np.arange(10)    # Secuencia de números
arr_linspace = np.linspace(0, 1, 5) # Números espaciados uniformemente
arr_random = np.random.rand(2, 2) # Números aleatorios

print(arr_1d)
print(arr_2d)
print(arr_zeros)
print(arr_ones)
print(arr_arange)
print(arr_linspace)
print(arr_random)

Atributos de Ndarray

Los objetos Ndarray ofrecen varios atributos cruciales que proporcionan información sobre su forma, tipo de datos, tamaño y más. Comprender estos atributos es clave para la manipulación efectiva de ndarrays.

  • ndim: El número de dimensiones de la matriz (ejes).
  • shape: Una tupla que indica el tamaño de la matriz a lo largo de cada dimensión (por ejemplo, (3, 4) para una matriz de 3×4).
  • size: El número total de elementos.
  • dtype: El tipo de datos de los elementos (por ejemplo, int32, float64, bool).
  • itemsize: El tamaño (en bytes) de cada elemento.
  • nbytes: El tamaño total (en bytes) de la matriz (itemsize * size).

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

print("Número de dimensiones:", arr.ndim)
print("Forma:", arr.shape)
print("Tamaño:", arr.size)
print("Tipo de datos:", arr.dtype)
print("Tamaño de elemento:", arr.itemsize)
print("Bytes totales:", arr.nbytes)

Operaciones básicas de Ndarray

NumPy proporciona operaciones eficientes elemento a elemento y a nivel de matriz. Las operaciones aritméticas simples (+, -, *, /, //, %, **) están vectorizadas:


import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

print("Suma:", arr1 + arr2)
print("Resta:", arr1 - arr2)
print("Multiplicación:", arr1 * arr2)
print("División:", arr1 / arr2)

También hay disponibles operaciones más avanzadas (como la multiplicación de matrices, el producto punto, etc.).

Deja una respuesta

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