Python Tutorial de NumPy para principiantes: aprenda con ejemplos
¿Qué es NumPy en Python?
NumPy es una biblioteca de código abierto disponible en Python, que ayuda en la programación matemática, científica, de ingeniería y de ciencia de datos. Es una biblioteca muy útil para realizar operaciones matemáticas y estadísticas en Python. Funciona perfectamente para matrices multidimensionales y multiplicación de matrices. Es fácil de integrar con C/C++ y Fortran.
Para cualquier proyecto científico, NumPy es la herramienta que hay que saber. Ha sido construido para trabajar con matrices N-dimensionales, álgebra lineal, números aleatorios, transformada de Fourier, etc.
NumPy es un lenguaje de programación que trabaja con matrices y arreglos multidimensionales. Además de los arreglos y matrices, NumPy admite una gran cantidad de operaciones matemáticas. En esta parte, repasaremos las funciones esenciales que necesita conocer para el tutorial sobre 'TensorFlow. "
¿Por qué utilizar NumPy?
NumPy es eficiencia de memoria, lo que significa que puede manejar una gran cantidad de datos más accesibles que cualquier otra biblioteca. Además, es muy conveniente trabajar con NumPy, especialmente para la multiplicación y remodelación de matrices. Además de eso, NumPy es rápido. De hecho, TensorFlow y Scikit aprenden a usar la matriz NumPy para calcular la multiplicación de matrices en el back-end.
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 caso remoto, NumPy no está instalado.
Puedes instalar NumPy usando Anaconda:
conda install -c anaconda numpy
- In Jupyter Computadora portátil :
import sys !conda install --yes --prefix {sys.prefix} numpy
Importar NumPy y verificar la versión
El comando para importar numpy es:
import numpy as np
El código anterior cambia el nombre del espacio de nombres Numpy a np. Esto nos permite anteponer la función, los métodos y los atributos de Numpy con "np" en lugar de escribir "numpy". Es el atajo estándar que encontrarás en la literatura numerosa.
Para verificar su versión instalada de NumPy, use el siguiente comando:
print (np.__version__)
Salida:
1.18.0
¿Qué es Python ¿Matriz numérica?
Los arreglos NumPy son un poco como Python listas, pero muy diferentes al mismo tiempo. Para aquellos que sois nuevos en el tema, aclaremos qué es exactamente y para qué sirve.
Como su nombre lo indica, una matriz NumPy es una estructura de datos central de la biblioteca numpy. El nombre de la biblioteca es en realidad la abreviatura de "Numeric Python” o “Numéricos Python.
Creando una matriz NumPy
La forma más sencilla de crear una matriz en Numpy es usar Python Lista
myPythonList = [1,9,8,3]
Para convertir la lista de Python en una matriz numpy utilizando el objeto np.array.
numpy_array_from_list = np.array(myPythonList)
Para mostrar el contenido de la lista
numpy_array_from_list
Salida:
array([1, 9, 8, 3])
En la práctica, no es necesario declarar una Python Lista. La operación se puede combinar.
a = np.array([1,9,8,3])
NOTA: La documentación de Numpy indica el uso de np.ndarray para crear una matriz. Sin embargo, este es el método recomendado.
También puedes crear una matriz numpy a partir de una tupla.
Matemático Operaciones en una matriz
Puede realizar operaciones matemáticas como sumas, restas, divisiones y multiplicaciones en una matriz. La sintaxis es el nombre de la matriz seguido de la operación (+.-,*,/) seguido del operando.
Ejemplo:
numpy_array_from_list + 10
Salida:
array([11, 19, 18, 13])
Esta operación agrega 10 a cada elemento de la matriz numpy.
Forma de matriz
Puede verificar la forma de la matriz con la forma del objeto precedida por el nombre de la matriz. De la misma manera, puedes verificar el tipo con dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Un número entero es un valor sin decimal. Si crea una matriz con decimal, entonces el tipo cambiará a flotante.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
Matriz de 2 dimensiones
Puede agregar una dimensión con una ", coma"
Tenga en cuenta que tiene que estar dentro del corchete []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
Matriz de 3 dimensiones
La dimensión superior se puede construir de la siguiente manera:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Objetivo | Código |
---|---|
Crear matriz | matriz([1,2,3]) |
imprimir la forma | matriz([.]).forma |
¿Qué es numpy.zeros()?
numpy.zeros () o np.zeros Python La función se utiliza para crear una matriz llena de ceros. numpy.zeros() en Python se puede utilizar cuando inicializa los pesos durante la primera iteración en TensorFlow y 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: es la forma de la matriz numérica de ceros
- Tipo D: es el tipo de datos en numerosos ceros. Es opcional. El valor predeterminado es float64
- Order: El valor predeterminado es C, que es un estilo de fila esencial para numpy.zeros() en 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() se utiliza para crear una matriz llena de unos. numpy.ones() en Python se puede utilizar cuando inicializa los pesos durante la primera iteración en TensorFlow y otras tareas estadísticas.
Python numpy.ones() Sintaxis
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parámetros
Aquí,
- Forma: es la forma de los np.ones Python Formación
- Tipo D: es el tipo de datos en numpy. Es opcional. El valor predeterminado es float64
- Order: El valor predeterminado es C, que es un estilo de fila esencial.
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 La función se utiliza para dar forma a una matriz sin cambiar sus datos. En algunas ocasiones, es posible que necesites cambiar la forma de los datos de ancho a largo. Puede utilizar la función np.reshape para esto.
Sintaxis de np.reshape()
numpy.reshape(a, newShape, order='C')
Aquí,
a: Matriz que desea remodelar
nueva forma: Los nuevos deseos dan forma
Order: El valor predeterminado es C, que es un estilo de fila esencial.
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 La función se utiliza para devolver una copia de la matriz en una dimensión. Cuando trabajas con alguna red neuronal como convnet, necesitas aplanar la matriz. Puede utilizar las funciones np.flatten() para esto.
Sintaxis de np.flatten()
numpy.flatten(order='C')
Aquí,
Order: El valor predeterminado es C, que es un estilo de fila esencial.
Ejemplo de aplanamiento NumPy
e.flatten()
Salida:
array([1, 2, 3, 4, 5, 6])
¿Qué es numpy.hstack() en Python?
Numpy.hstack es una función en Python que se utiliza para apilar horizontalmente secuencias de matrices de entrada para crear una única matriz. Con la función hstack(), puede agregar datos horizontalmente. Es una función muy conveniente en NumPy.
Estudiemos hstack en Python con un ejemplo:
Ejemplo:
## Horitzontal 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 una función en Python que se utiliza para apilar verticalmente secuencias de matrices de entrada para crear una única matriz. Con la función vstack(), puede agregar datos verticalmente.
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 hstack, aprendamos un ejemplo para generar números aleatorios en NumPy.
Generar aleatorio Numbers usando NumPy
Para generar números aleatorios para la distribución gaussiana, utilice:
numpy.random.normal(loc, scale, size)
Aquí,
- Loc: el significado. El centro de distribución.
- Escala: desviación estándar.
- Tamaño: número de devoluciones
Ejemplo:
## Generate random nmber from 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 grafica la distribución será similar al siguiente gráfico
Función NumPy Asarray
La función asarray() se utiliza cuando desea convertir una entrada en una matriz. La entrada podría ser listas, tuplas, ndarray, etc.
Sintaxis:
numpy.asarray(data, dtype=None, order=None)[source]
Aquí,
datos: Datos que desea convertir en una matriz
dtype: Este es un argumento opcional. Si no se especifica, el tipo de datos se infiere de los datos de entrada.
Order: El valor predeterminado es C, que es un estilo de fila esencial. Otra opción es F (estilo Fortan)
Ejemplo:
Considere la siguiente matriz 2-D con cuatro filas y cuatro columnas rellenas con 1
import numpy as np A = np.matrix(np.ones((4,4)))
Si desea cambiar el valor de la matriz, no puede. El motivo es que no es posible cambiar una copia.
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 es inmutable. Puede utilizar asarray si desea agregar modificaciones en la matriz original. A ver si se produce algún cambio cuando quieras cambiar el valor de las terceras filas con el valor 2.
np.asarray(A)[2]=2 print(A)
Explicación del código:
np.asarray(A): convierte la matriz A en una matriz
[2]: seleccione 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 numpy incorporada que devuelve un objeto ndarray que contiene valores espaciados uniformemente dentro de un intervalo definido. Por ejemplo, desea crear valores del 1 al 10; puedes usar np.arange() en Python función.
Sintaxis:
numpy.arange(start, stop, step, dtype)
Python Parámetros de rango NumPy:
- Empiece a promover la campaña: Inicio del intervalo para np.arange en Python función.
- Parada: Fin del intervalo.
- Step: Espaciado entre valores. El paso predeterminado es 1.
- Tipo D: Es un tipo de salida de matriz para NumPy arange en Python.
Ejemplo:
import numpy np np.arange(1, 11)
Salida:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Ejemplo:
Si desea cambiar el paso en esta función de rango NumPy en Python Por ejemplo, puede agregar un tercer número entre paréntesis. Cambiará el paso.
import numpy np np.arange(1, 14, 4)
Salida:
array([ 1, 5, 9, 13])
Función NumPy Linspace
Linspace proporciona muestras espaciadas uniformemente.
Sintaxis:
numpy.linspace(start, stop, num, endpoint)
Aquí,
- Empiece a promover la campaña: 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 es Verdadero (predeterminado), detener es el último valor. Si es falso, el valor de parada no se incluye.
Ejemplo:
Por ejemplo, se puede utilizar para crear 10 valores del 1 al 5 espaciados uniformemente.
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, puede configurar el punto final en falso
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 con espacios pares en una escala logarítmica. Logspace tiene 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 verificar el tamaño de la memoria de un elemento en una matriz, puede usar itemize
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Salida:
16
Cada elemento ocupa 16 bytes.
Indexación y corte Python
Cortar datos es trivial con numpy. Cortaremos la matriz “e”. Tenga en cuenta que, en Python, necesitas usar los corchetes para devolver las 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]]
Recuerde que con numpy la primera matriz/columna comienza en 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Salida:
First row: [1 2 3] Second row: [4 5 6]
In Python, como muchos otros idiomas,
- Los valores antes de la coma representan las filas.
- El valor de los derechos representa las columnas.
- Si desea seleccionar una columna, debe agregar: antes del índice de la columna.
- : significa que desea 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. Usas : para seleccionar todas las columnas hasta la segunda
## Second Row, two values print(e[1, :2]) [4 5]
Funciones estadísticas en Python
NumPy tiene bastantes funciones estadísticas útiles para encontrar la desviación estándar y la varianza percentil mínima, máxima, etc. de los elementos dados en la matriz. Las funciones se explican a continuación:
Numpy está equipado con la sólida función estadística que se detalla a continuación
Función | Numpy |
---|---|
Min | np.min() |
Max | np.max() |
Media | np.media() |
Mediana | np.mediana() |
Desviación estándar | np.std() |
Considere la siguiente matriz:
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 función estadística 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?
producto numpy.dot es una poderosa biblioteca para cálculo matricial. Por ejemplo, puede calcular el producto escalar con np.dot. El producto Numpy.dot es el producto escalar de a y b. numpy.punto() en Python maneja las matrices 2D y realiza multiplicaciones de matrices.
Sintaxis:
numpy.dot(x, y, out=None)
Parámetros
Aquí,
x, y: matrices de entrada. x e y deben ser 1-D o 2-D para que funcione la función np.dot()
out: Este es el argumento de salida para el escalar de matriz 1-D que se devolverá. De lo contrario, se debe devolver ndarray.
Devoluciones
La función numpy.dot() en Python devuelve un producto escalar de dos matrices x e y. La función dot() devuelve un escalar si tanto x como y son unidimensionales; de lo contrario, devuelve una matriz. Si se proporciona 'out', se devuelve.
Eleva
Producto escalar en Python genera una excepción ValueError si la última dimensión de x no tiene el mismo tamaño que 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
La función Numpy matmul() se utiliza para devolver el producto matricial de 2 matrices. Así es como funciona
1) matrices 2-D, devuelve un producto normal
2) Dimensiones > 2, el producto se trata como una pila de matriz
3) La matriz 1-D primero se convierte en una matriz y luego se calcula el producto.
Sintaxis:
numpy.matmul(x, y, out=None)
Aquí,
x, y: matrices de entrada. escalares no permitidos
out: Este es un parámetro opcional. Generalmente la salida se almacena en ndarray.
Ejemplo:
De la misma manera, puedes calcular la multiplicación de matrices con np.matmul
### Matmul: matruc 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
Por último, pero no menos importante, si necesita calcular el determinante, puede usar np.linalg.det(). Tenga en cuenta que numpy se encarga de la dimensión.
Ejemplo:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Salida:
-2.000000000000005
Resumen
- Python es una biblioteca de código abierto disponible en Python, que ayuda en matemáticas, ciencias, ingeniería y programación de ciencia de datos.
- numpy.zeros() o np.zeros Python La función se utiliza para crear una matriz llena de ceros.
- numpy.ones() en Python se puede utilizar cuando inicializa los pesos durante la primera iteración en TensorFlow y otras tareas estadísticas.
- Python La función NumPy Reshape se utiliza para dar forma a una matriz sin cambiar sus datos.
- Python La función NumPy Flatten se utiliza para devolver una copia de la matriz en una dimensión.
- Numpy.hstack es una función en Python que se utiliza para apilar horizontalmente secuencias de matrices de entrada para crear una única matriz.
- Numpy.vstack es una función en Python que se utiliza para apilar verticalmente secuencias de matrices de entrada para crear una única matriz.
- numpy.arange() es una función numpy incorporada que devuelve un objeto ndarray que contiene valores espaciados uniformemente dentro de un intervalo definido.
- El producto Numpy.dot es una poderosa biblioteca para cálculo matricial.
- La función Numpy matmul() se utiliza para devolver el producto matricial de 2 matrices.