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.
