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

Ejemplo para generar aleatorio Numbers usando NumPy
Ejemplo para generar aleatorio Numbers usando NumPy

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.