Skip to content

Hoja de trucos de NumPy

El sistema NumPy es una extensión de cálculo numérico de código abierto para Python. Esta herramienta se puede utilizar para almacenar y procesar matrices grandes, lo cual es mucho más eficiente que la propia estructura de listas anidadas de Python (que también se puede utilizar para representar matrices).

Explicación

Usa arr para representar un objeto de matriz numpy.

Importar módulo

import numpy as np

Importar/Exportar

np.loadtxt(‘file.txt’) Leer desde un archivo de texto
np.genfromtxt(‘file.csv’,delimiter=’,’) Leer desde un archivo CSV
np.savetxt(‘file.txt’,arr,delimiter=’ ‘) Escribir en un archivo de texto
np.savetxt(‘file.csv’,arr,delimiter=’,’) Escribir en un archivo CSV

Crear matriz

np.array([1,2,3]) Matriz 1D
np.array([(1,2,3),(4,5,6)]) Matriz 2D
np.zeros(3) Matriz 1D de longitud 3 con ceros
np.ones((3,4)) Matriz 3x4 con todos los valores como 1
np.eye(5) Matriz de 5x5 con 1s en la diagonal y 0s en el resto (matriz identidad)
np.linspace(0,100,6) Matriz de 6 valores espaciados uniformemente de 0 a 100
np.arange(0,10,3) Matriz de valores de 0 a menos de 10 con paso 3 (p. ej., [0,3,6,9])
np.full((2,3),8) Matriz de 2x3 con todos los valores como 8
np.random.rand(4,5) Matriz de 4x5 de flotantes aleatorios entre 0-1
np.random.rand(6,7)*100 Matriz de 6x7 de flotantes aleatorios entre 0-100
np.random.randint(5,size=(2,3)) Matriz de 2x3 con enteros aleatorios entre 0-4

Inspeccionar propiedades

arr.size Devuelve el número total de elementos de la matriz
arr.shape Devuelve las dimensiones de la matriz
arr.dtype Devuelve el tipo de elementos de la matriz
arr.astype(dtype) Convierte el tipo de elemento de la matriz a dtype
arr.tolist() Convierte la matriz a una lista
np.info(np.eye) Ver la documentación de np.eye

Copiar/Ordenar/Remodelar

np.copy(arr) Copia arr en una nueva memoria
arr.view(dtype) Crea una vista de los elementos de arr con tipo dtype
arr.sort() Ordena arr
arr.sort(axis=0) Ordena un eje específico de arr
two_d_arr.flatten() Aplana la matriz 2D a 1D
arr.T Transpone arr (las filas se convierten en columnas y viceversa)
arr.reshape(3,4) Cambia la forma de arr a 3 filas y 4 columnas sin cambiar los datos
arr.resize((5,6)) Cambia la forma de arr a 5x6 y rellena los nuevos valores con 0

Añadir/Eliminar elementos

np.append(arr,values) Añade valores al final de arr
np.insert(arr,2,values) Inserta valores en arr antes del índice 2
np.delete(arr,3,axis=0) Borra la fila en el índice 3 de arr
np.delete(arr,4,axis=1) Borra la columna en el índice 4 de arr

Combinar/Dividir

np.concatenate((arr1,arr2),axis=0) Añade arr2 como filas al final de arr1
np.concatenate((arr1,arr2),axis=1) Añade arr2 como columnas al final de arr1
np.split(arr,3) Divide arr en 3 submatrices
np.hsplit(arr,5) Divide arr horizontalmente en el quinto índice

Indexación/Slicing/Subconjuntos

arr[5] Devuelve el elemento en el índice 5
arr[2,5] Devuelve el elemento de la matriz 2D en el índice [2][5]
arr[1]=4 Asigna al elemento de la matriz en el índice 1 el valor 4
arr[1,3]=10 Asigna al elemento de la matriz en el índice [1][3] el valor 10
arr[0:3] Devuelve los elementos en los índices 0,1,2 (En una matriz 2D: devuelve las filas 0,1,2)
arr[0:3,4] Devuelve los elementos en las filas 0,1,2 en la columna 4
arr[:2] Devuelve los elementos en los índices 0,1 (En una matriz 2D: devuelve las filas 0,1)
arr[:,1] Devuelve los elementos en el índice 1 en todas las filas
arr<5 Devuelve una matriz con valores booleanos
(arr1<3) & (arr2>5) Devuelve una matriz con valores booleanos
~arr Invierte una matriz booleana
arr[arr<5] Devuelve los elementos de la matriz menores que 5

Matemáticas escalares

np.add(arr,1) Suma 1 a cada elemento de la matriz
np.subtract(arr,2) Resta 2 a cada elemento de la matriz
np.multiply(arr,3) Multiplica cada elemento de la matriz por 3
np.divide(arr,4) Divide cada elemento de la matriz por 4 (devuelve np.nan para la división por cero)
np.power(arr,5) Eleva cada elemento de la matriz a la 5ª potencia

Matemáticas vectoriales

np.add(arr1,arr2) Suma arr2 a arr1 elemento por elemento
np.subtract(arr1,arr2) Resta arr2 de arr1 elemento por elemento
np.multiply(arr1,arr2) Multiplica arr1 por arr2 elemento por elemento
np.divide(arr1,arr2) Divide arr1 por arr2 elemento por elemento
np.power(arr1,arr2) Eleva arr1 a la potencia de arr2 elemento por elemento
np.array_equal(arr1,arr2) Devuelve True si las matrices tienen los mismos elementos y forma
np.sqrt(arr) Raíz cuadrada de cada elemento de la matriz
np.sin(arr) Seno de cada elemento de la matriz
np.log(arr) Logaritmo natural de cada elemento de la matriz
np.abs(arr) Valor absoluto de cada elemento de la matriz
np.ceil(arr) Redondea hacia arriba al entero más cercano
np.floor(arr) Redondea hacia abajo al entero más cercano
np.round(arr) Redondea al entero más cercano

Estadísticas

np.mean(arr,axis=0) Devuelve la media a lo largo de un eje específico
arr.sum() Devuelve la suma de arr
arr.min() Devuelve el valor mínimo de arr
arr.max(axis=0) Devuelve el valor máximo de un eje específico
np.var(arr) Devuelve la varianza de la matriz
np.std(arr,axis=1) Devuelve la desviación estándar de un eje específico
arr.corrcoef() Devuelve el coeficiente de correlación de la matriz