Python Tutorial de NumPy para principiantes
โก Resumen inteligente
NumPy es la base Python Biblioteca para computaciรณn numรฉrica, que impulsa arreglos, matrices, รกlgebra lineal y muestreo aleatorio. Este tutorial de NumPy recorre la instalaciรณn, la creaciรณn de arreglos, reshaping, segmentaciรณn, estadรญstica y matemรกticas matriciales con ejecutable Python ejemplos.

ยฟQuรฉ es NumPy en Python?
NumPy es una fuente abierta Python Biblioteca para programaciรณn matemรกtica, cientรญfica, de ingenierรญa y de ciencia de datos. Es una biblioteca muy รบtil para operaciones matemรกticas y estadรญsticas en PythonFunciona perfectamente con matrices multidimensionales y multiplicaciรณn de matrices, y se integra fรกcilmente con C/C++ y Fortran.
Para cualquier proyecto cientรญfico, NumPy es la herramienta indispensable. Estรก diseรฑada para trabajar con matrices N-dimensionales, รกlgebra lineal, generaciรณn de nรบmeros aleatorios, transformadas de Fourier y mucho mรกs.
NumPy da Python Soporte de primera clase para matrices y arreglos multidimensionales, ademรกs de un amplio conjunto de operaciones matemรกticas que actรบan sobre ellos. En esta guรญa, revisaremos las funciones esenciales que necesita conocer antes de pasar al tutorial sobre 'TensorFlow. "
ยฟPor quรฉ utilizar NumPy?
NumPy es eficiente en el uso de memoria, por lo que puede manejar grandes volรบmenes de datos numรฉricos mรกs fรกcilmente que los tipos de datos puros. Python listas. Tambiรฉn es muy conveniente para la multiplicaciรณn de matrices y reescritura.pingy es rรกpido porque el trabajo pesado se delega a rutinas C compiladas. De hecho, bibliotecas como TensorFlow, PyTorCh y Scikit-learn dependen de los arreglos de NumPy para las operaciones matemรกticas con matrices en su back-end, lo que convierte a NumPy en el caballo de batalla silencioso que subyace a la mayorรญa de los flujos de trabajo modernos de ciencia de datos e inteligencia artificial.
Cรณmo instalar NumPy
Para instalar la biblioteca NumPy, consulte nuestro tutorial. Cรณmo instalar TensorFlow. NumPy se instala de forma predeterminada con Anaconda.
En el caso excepcional de que NumPy no estรฉ instalado, utilice cualquiera de las opciones que se indican a continuaciรณn.
Puedes instalar NumPy usando Anaconda:
conda install -c anaconda numpy
- In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy
Los usuarios de Pip pueden instalar o actualizar con un solo comando:
pip install --upgrade numpy
Importar NumPy y verificar la versiรณn
El comando para importar numpy es:
import numpy as np
La lรญnea anterior cambia el nombre del espacio de nombres NumPy a npEste atajo le permite anteponer funciones, mรฉtodos y atributos de NumPy con np. en lugar de typing numpy.y es la convenciรณn estรกndar que encontrarรกs en todo el ecosistema de NumPy.
Para comprobar la versiรณn de NumPy que tiene instalada, utilice el siguiente comando:
print(np.__version__)
Salida:
2.1.3
NumPy 2.0 se lanzรณ en junio de 2024 y es la serie principal estable actual. Si su proyecto todavรญa depende de la API 1.x, fije la versiรณn a numpy<2 en su archivo de requisitos porque algunos alias heredados como np.float fueron eliminados en la versiรณn 2.0.
ยฟQuรฉ es Python ยฟMatriz numรฉrica?
Los arrays de NumPy se parecen un poco a Python A primera vista parecen listas, pero su comportamiento es muy diferente. Para quienes no estรฉn familiarizados con el tema, aclaremos quรฉ es un ndarray y por quรฉ es importante.
Como su nombre lo indica, un array de NumPy es la estructura de datos central de la biblioteca NumPy. El nombre en sรญ es la abreviatura de "Numeric" (Numรฉrico). Pythonโ o โNumรฉricos Pythonโ, y el ndarray es un bloque de memoria homogรฉneo y de tamaรฑo fijo con una forma y un tipo de datos conocidos.
Creando una matriz NumPy
La forma mรกs sencilla de crear una matriz en NumPy es comenzar desde una Python Lista.
myPythonList = [1,9,8,3]
Convertir el Python lista a una matriz NumPy usando np.array.
numpy_array_from_list = np.array(myPythonList)
Muestra el contenido del array.
numpy_array_from_list
Salida:
array([1, 9, 8, 3])
En la prรกctica, no es necesario declarar una Python Primero la lista. Los dos pasos se pueden combinar.
a = np.array([1,9,8,3])
NOTA: La documentaciรณn de NumPy tambiรฉn menciona np.ndarray, es np.array Es la funciรณn de fรกbrica recomendada para el uso diario.
Tambiรฉn puedes crear una matriz NumPy a partir de una tupla de la misma manera.
Matemรกtico Operaciones en una matriz
Puedes realizar operaciones matemรกticas como suma, resta, etc.tracciรณn, divisiรณn y multiplicaciรณn en una matriz. La sintaxis es el nombre de la matriz, seguido del operador (+, -, *, /), seguido del operando. Estas operaciones estรกn vectorizadas, lo que significa que NumPy las aplica a cada elemento sin una instrucciรณn explรญcita. Python lazo.
Ejemplo:
numpy_array_from_list + 10
Salida:
array([11, 19, 18, 13])
Esta operaciรณn suma 10 a cada elemento del array NumPy.
Forma de matriz
Puedes comprobar la forma de una matriz con el shape atributo, al que se accede agregรกndolo al nombre del array. De la misma manera, puede comprobar el tipo con dtype.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Un entero es un valor sin decimales. Si creas una matriz con decimales, el tipo de dato cambia a float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
Matriz de 2 dimensiones
Puedes aรฑadir una dimensiรณn con una coma dentro de los parรฉntesis.
Tenga en cuenta que las tuplas internas deben estar dentro de los corchetes externos. [].
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
Matriz de 3 dimensiones
De la misma manera se pueden construir dimensiones superiores.
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
| Objetivo | Code |
|---|---|
| Crear matriz | matriz([1,2,3]) |
| imprimir la forma | matriz([.]).forma |
ยฟQuรฉ es numpy.zeros()?
numpy.zeros () or np.zeros es un Python Funciรณn utilizada para crear una matriz rellena de ceros. numpy.zeros() Resulta รบtil cuando se necesita inicializar los pesos durante la primera iteraciรณn en TensorFlow o configurar bรบferes de marcador de posiciรณn para otras tareas estadรญsticas.
Sintaxis de la funciรณn numpy.zeros()
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parรกmetros
Aquรญ,
- Forma: forma del array cero de NumPy.
- Tipo D: tipo de datos de los elementos. Es opcional y el valor predeterminado es
float64. - Pedido: el valor predeterminado es
C, que es el diseรฑo de filas principales utilizado pornumpy.zeros()in Python.
Python numpy.zeros() Ejemplo
import numpy as np np.zeros((2,2))
Salida:
array([[0., 0.], [0., 0.]])
Ejemplo de cero numeroso con tipo de datos
import numpy as np np.zeros((2,2), dtype=np.int16)
Salida:
array([[0, 0], [0, 0]], dtype=int16)
ยฟQuรฉ es numpy.ones()?
funciรณn np.ones() crea una matriz llena de unos. numpy.ones() in Python Resulta รบtil al inicializar los pesos durante la primera iteraciรณn en TensorFlow y para otras tareas estadรญsticas.
Python numpy.ones() Sintaxis
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parรกmetros
Aquรญ,
- Forma: forma de los np.ones Python Formaciรณn.
- Tipo D: tipo de datos de los elementos. Es opcional y el valor predeterminado es
float64. - Pedido: el valor predeterminado es
C, que es la disposiciรณn por filas.
Python numpy.ones() Matriz 2D con ejemplo de tipo de datos
import numpy as np np.ones((1,2,3), dtype=np.int16)
Salida:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
funciรณn numpy.reshape() en Python
Python Reformar NumPy cambia la forma de una matriz sin cambiar sus datos. Es posible que necesites cambiar la forma de los datos de formato ancho a formato largo, o pasar de un vector 1D a una matriz 2D antes de introducirlos en un modelo. np.reshape La funciรณn se encarga de esto en una sola llamada.
Sintaxis de np.reshape()
numpy.reshape(a, newShape, order='C')
Aquรญ,
a: matriz que desea redimensionar.
nueva forma: la nueva forma deseada.
Pedido: el valor predeterminado es C, la disposiciรณn por filas.
Ejemplo de remodelaciรณn de NumPy
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Salida:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.aplanar() en Python
Python Aplanar NumPy devuelve una copia de la matriz colapsada en una dimensiรณn. Cuando se trabaja con redes neuronales como las convnets, a menudo es necesario aplanar un tensor de imagen antes de pasarlo a una capa densa. np.flatten() Esta funciรณn se encarga de ello en una sola llamada.
Sintaxis de np.flatten()
numpy.flatten(order='C')
Aquรญ,
Pedido: el valor predeterminado es C, la disposiciรณn por filas.
Ejemplo de aplanamiento NumPy
e.flatten()
Salida:
array([1, 2, 3, 4, 5, 6])
ยฟQuรฉ es numpy.hstack() en Python?
numpy.hstack es un Python Funciรณn utilizada para apilar horizontalmente secuencias de matrices de entrada en una sola matriz. Con hstack(), agregas datos a lo largo del eje de columnas. Es una herramienta muy รบtil en NumPy cuando necesitas combinar vectores de caracterรญsticas uno al lado del otro.
Estudiemos hstack in Python con un ejemplo.
Ejemplo:
## Horizontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Salida:
Horizontal Append: [1 2 3 4 5 6]
ยฟQuรฉ es numpy.vstack() en Python?
numpy.vstack es un Python Funciรณn utilizada para apilar verticalmente secuencias de matrices de entrada en una sola matriz. Con vstack(), se aรฑaden datos a lo largo del eje de filas, lo cual resulta รบtil cuando se desea combinar lotes de muestras.
Estudiรฉmoslo con un ejemplo.
Ejemplo:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Salida:
Vertical Append: [[1 2 3] [4 5 6]]
Despuรฉs de estudiar NumPy vstack y hstackVeamos un ejemplo que genera nรบmeros aleatorios en NumPy.
Generar aleatorio Numbers usando NumPy
Para generar nรบmeros aleatorios a partir de una distribuciรณn gaussiana, utilice:
numpy.random.normal(loc, scale, size)
Aquรญ,
- Loc: la media. El centro de la distribuciรณn.
- SCALE: la desviaciรณn estรกndar.
- Tamaรฑo: nรบmero de muestras devueltas.
Ejemplo:
## Generate random numbers from a normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Si se representa grรกficamente, la distribuciรณn es similar al siguiente grรกfico.

Tenga en cuenta que el cรณdigo mรกs reciente utiliza cada vez mรกs la API de generador moderna, np.random.default_rng(), que es el reemplazo recomendado para el legado np.random.normal llamadas en NumPy 2.x.
Funciรณn NumPy Asarray
El asarray() Esta funciรณn convierte una entrada en un array. La entrada puede ser una lista, una tupla, un ndarray o una secuencia similar.
Sintaxis:
numpy.asarray(data, dtype=None, order=None)
Aquรญ,
en: datos que desea convertir en una matriz.
dtype: opcional. Si no se especifica, el tipo de datos se infiere a partir de los datos de entrada.
Pedido: el valor predeterminado es C, el diseรฑo de filas principales. La otra opciรณn es F (Fortracolumna de estilo n).
Ejemplo:
Considere la siguiente matriz 2D con cuatro filas y cuatro columnas, rellenas con 1.
import numpy as np A = np.matrix(np.ones((4,4)))
Si intenta cambiar un valor en la matriz a travรฉs de np.array, el original no se modifica. La razรณn es que np.array crea una copia de la matriz.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
La matriz no ha cambiado. Utilice asarray cuando quieras modificar la matriz original directamente. Veamos quรฉ sucede cuando asignas el valor 2 a la tercera fila.
np.asarray(A)[2]=2 print(A)
Code Explicaciรณn:
np.asarray(A) convierte la matriz A a una vista de matriz.
[2] selecciona la tercera fila.
Salida:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
ยฟQuรฉ es numpy.arange()?
numpy.arange() es una funciรณn integrada de NumPy que devuelve un ndarray que contiene valores espaciados uniformemente dentro de un intervalo definido. Por ejemplo, para crear valores del 1 al 10, puede llamar a np.arange() in Python.
Sintaxis:
numpy.arange(start, stop, step, dtype)
Python Parรกmetros de rango NumPy:
- Comenzar: inicio del intervalo para
np.arangein Python. - Parada: fin del intervalo.
- Paso: espaciado entre valores. El paso predeterminado es 1.
- Tipo D: tipo de matriz de salida para NumPy
arange.
Ejemplo:
import numpy as np np.arange(1, 11)
Salida:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Ejemplo:
Para cambiar el paso en este NumPy arange Por ejemplo, agregue un tercer nรบmero al parรฉntesis. Esto cambia el tamaรฑo del paso.
import numpy as np np.arange(1, 14, 4)
Salida:
array([ 1, 5, 9, 13])
Funciรณn NumPy Linspace
linspace Devuelve muestras espaciadas uniformemente entre dos puntos finales.
Sintaxis:
numpy.linspace(start, stop, num, endpoint)
Aquรญ,
- Comenzar: valor inicial de la secuencia.
- Parada: valor final de la secuencia.
- num: nรบmero de muestras a generar. El valor predeterminado es 50.
- Punto final: Si
True(Predeterminado),stopes el รบltimo valor. SiFalse,stopno esta incluido.
Ejemplo:
Por ejemplo, se puede utilizar para crear 10 valores igualmente espaciados del 1 al 5.
import numpy as np np.linspace(1.0, 5.0, num=10)
Salida:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Si no desea incluir el รบltimo dรญgito en el intervalo, configure endpoint a False.
np.linspace(1.0, 5.0, num=5, endpoint=False)
Salida:
array([1. , 1.8, 2.6, 3.4, 4.2])
Funciรณn LogSpace NumPy en Python
logspace Devuelve nรบmeros espaciados uniformemente en una escala logarรญtmica. logspace comparte los mismos parรกmetros que np.linspace.
Sintaxis:
numpy.logspace(start, stop, num, endpoint)
Ejemplo:
np.logspace(3.0, 4.0, num=4)
Salida:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Finalmente, si desea comprobar el tamaรฑo de memoria de un solo elemento en un array, puede utilizar itemsize.
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Salida:
16
Cada elemento ocupa 16 bytes.
Indexaciรณn y corte Python
Dividir datos es sencillo con NumPy. Dividiremos la matriz. e. En Python, se utilizan corchetes para devolver filas o columnas.
Ejemplo:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Recuerda que en NumPy el primer รญndice de la matriz comienza en 0.
## First row print('First row:', e[0]) ## Second row print('Second row:', e[1])
Salida:
First row: [1 2 3] Second row: [4 5 6]
In Python, como en muchos otros idiomas,
- El valor que aparece antes de la coma representa las filas.
- El valor que aparece despuรฉs de la coma representa las columnas.
- Si desea seleccionar una columna, agregue
:antes del รญndice de columna. :significa que quieres todas las filas de la columna seleccionada.
print('Second column:', e[:,1])
Second column: [2 5]
Para devolver los dos primeros valores de la segunda fila, utilice : para seleccionar todas las columnas hasta el segundo รญndice.
## Second Row, two values print(e[1, :2]) [4 5]
Funciones estadรญsticas en Python
NumPy proporciona un conjunto รบtil de funciones estadรญsticas para calcular el mรญnimo, el mรกximo, el percentil, la desviaciรณn estรกndar, la varianza y otros valores de una matriz dada. Las mรกs comunes se enumeran a continuaciรณn.
NumPy incluye sรณlidas herramientas estadรญsticas auxiliares, resumidas en la tabla.
| Funciรณn | Numpy |
|---|---|
| Min | np.min() |
| Max | np.max() |
| Media | np.media() |
| Mediana | np.mediana() |
| Desviaciรณn estรกndar | np.std() |
Considere el siguiente arreglo:
Ejemplo:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Salida:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Ejemplo de funciones estadรญsticas de NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Salida:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
ยฟQuรฉ es el producto escalar numpy?
numpy.dot es una funciรณn potente para el cรกlculo de matrices. Por ejemplo, puede calcular el producto escalar con np.dot. numpy.dot devuelve el producto escalar de a y by admite matrices tanto unidimensionales como bidimensionales. Para entradas bidimensionales, realiza la multiplicaciรณn de matrices.
Sintaxis:
numpy.dot(x, y, out=None)
Parรกmetros
Aquรญ,
x, y: matrices de entrada. x y y ambos deben ser 1D o 2D para np.dot() para funcionar como un producto escalar o una multiplicaciรณn de matrices.
out: argumento de salida opcional que se utiliza para capturar el resultado. De lo contrario, se devuelve un ndarray.
Devoluciones
La funciรณn numpy.dot() devuelve el producto escalar de dos matrices x y y. Devuelve un escalar cuando ambos son 1D, de lo contrario devuelve una matriz. Si out Si se proporciona ese array, se devuelve.
Eleva
El producto escalar en Python plantea un ValueError si la รบltima dimensiรณn de x no coincide con la penรบltima dimensiรณn de y.
Ejemplo:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Salida:
14
Multiplicaciรณn de matrices en Python
El NumPy matmul() Esta funciรณn devuelve el producto matricial de dos matrices. Asรญ es como funciona.
1) Para matrices 2D, devuelve el producto matricial normal.
2) Para dimensiones mayores que 2, el producto se trata como una pila de matrices.
3) Una matriz 1D se convierte primero en una matriz, y luego se calcula el producto.
El infijo @ operador, disponible desde Python 3.5, es una abreviatura de matmul y se utiliza ampliamente en la programaciรณn moderna.
Sintaxis:
numpy.matmul(x, y, out=None)
Aquรญ,
x, y: Matrices de entrada. No se permiten escalares.
out: parรกmetro opcional. Normalmente, la salida se almacena en un ndarray.
Ejemplo:
De la misma manera, puedes calcular la multiplicaciรณn de matrices con np.matmul.
### Matmul: matrix product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Salida:
array([[19, 22], [43, 50]])
Determinante
Si necesita calcular el determinante de una matriz, utilice np.linalg.det()NumPy se encarga de las dimensiones por ti.
Ejemplo:
## Determinant 2*2 matrix ### 5*8-7*6 np.linalg.det(i)
Salida:
-2.000000000000005
Explicaciรณn de la difusiรณn en NumPy
La difusiรณn es la regla que permite a NumPy realizar operaciones aritmรฉticas en matrices de diferentes dimensiones sin copiar datos. Al sumar un escalar a un vector unidimensional, o un vector unidimensional a una matriz bidimensional, NumPy estira el operando menor a lo largo de los ejes faltantes para que las dimensiones se alineen. Esto evita la necesidad de copiar datos explรญcitamente. Python Los bucles son una de las principales razones por las que el cรณdigo NumPy se siente rรกpido y conciso.
Dos formas son compatibles para la transmisiรณn cuando, comparadas de derecha a izquierda, cada par de dimensiones es igual o una de ellas es igual a 1. Por ejemplo, una matriz de forma (3, 4) transmisiones contra una fila de formas (4,) o una columna de forma (3, 1)La misma lรณgica impulsa la normalizaciรณn en el aprendizaje automรกtico, donde se sustituyetracun vector medio por caracterรญstica de un lote de muestras en una sola lรญnea. Broadcasting es tambiรฉn el modelo conceptual utilizado por bibliotecas de tensores como PyTorch, TensorFlow y JAX, por lo que las reglas que aprendas aquรญ se transfieren directamente al cรณdigo de la GPU.
Cรณmo NumPy impulsa la IA y el aprendizaje automรกtico
NumPy se encuentra en la base de casi todos los sistemas modernos. Python Pila de IA. PyTorLos tensores ch, los tensores eager de TensorFlow y las matrices JAX exponen las mismas operaciones de difusiรณn, segmentaciรณn y redistribuciรณn.ping API que aprendiste sobre los ndarrays de NumPy. Muchos tutoriales aรบn utilizan arrays de NumPy preprocesados โโen los bucles de entrenamiento de modelos, y los frameworks los aceptan sin conversiรณn alguna.
Tres patrones concretos muestran cรณmo NumPy se integra en el trabajo de IA actual. Primero, los ingenieros de datos transforman las caracterรญsticas sin procesar en matrices NumPy antes de integrarlas en pipelines de scikit-learn o en conjuntos de datos de Hugging Face. Segundo, los investigadores utilizan NumPy como base para la CPU y luego lo reemplazan por CuPy, que ofrece una API casi idรฉntica pero se ejecuta en GPU NVIDIA mediante CUDA. Tercero, JAX se basa en la API de NumPy para aรฑadir diferenciaciรณn automรกtica y compilaciรณn justo a tiempo, de modo que el mismo cรณdigo que se ejecuta en el portรกtil puede ejecutarse en TPU en la nube. En resumen, las habilidades de manejo de matrices que se desarrollan con NumPy se aplican a todos los principales kits de herramientas de aprendizaje profundo, lo que convierte a este tutorial en un paso รบtil en el camino hacia el desarrollo de IA.
