Tutorial de Python Numpy

Tutorial de Python Numpy
En esta lección sobre la biblioteca de Python Numpy, veremos cómo esta biblioteca nos permite administrar poderosos objetos de matriz n-dimensionales con funciones sofisticadas presentes para manipular y operar sobre estas matrices. Para completar esta lección, cubriremos las siguientes secciones:
  • ¿Qué es el paquete Python Numpy??
  • Matrices numpy
  • Diferentes operaciones que se pueden hacer sobre matrices numpy
  • Algunas funciones más especiales

¿Qué es el paquete Python Numpy??

En pocas palabras, Numpy significa 'Python numérico' y eso es lo que pretende cumplir, para permitir operaciones numéricas complejas realizadas en objetos de matriz n-dimensionales muy fácilmente e intuitivos. Es la biblioteca central utilizada en computación científica, con funciones presentes para realizar operaciones algebraicas lineales y operaciones estadísticas.

Uno de los conceptos más fundamentales (y atractivos) para Numpy es su uso de objetos de matriz N-dimensionales. Podemos tomar esta matriz como solo un Colección de filas y columna, Al igual que un archivo MS-Excel. Es posible convertir una lista de Python en una matriz numpy y operar funciones sobre ella.

Representación de la matriz numpy

Solo una nota antes de comenzar, usamos un entorno virtual para esta lección que hicimos con el siguiente comando:

python -m virtualenv numpy
fuente numpy/bin/activar

Una vez que el entorno virtual está activo, podemos instalar la biblioteca Numpy dentro de la ENV virtual para que los ejemplos que creamos a continuación puedan ejecutarse:

PIP install numpy

Vemos algo como esto cuando ejecutamos el comando anterior:

Probemos rápidamente si el paquete Numpy se ha instalado correctamente con el siguiente fragmento de código corto:

importar numpy como np
a = np.Array ([1,2,3])
Imprimir (a)

Una vez que ejecute el programa anterior, debería ver la siguiente salida:

También podemos tener matrices multidimensionales con Numpy:

multi_dimension = np.Array ([(1, 2, 3), (4, 5, 6)])
imprimir (multi_dimension)

Esto producirá una salida como:

[[1 2 3]
[4 5 6]]

También puede usar Anaconda para ejecutar estos ejemplos, lo cual es más fácil y eso es lo que hemos usado anteriormente. Si desea instalarlo en su máquina, mire la lección que describe "Cómo instalar Anaconda Python en Ubuntu 18.04 LTS ”y comparta sus comentarios. Ahora, avancemos a varios tipos de operaciones que se pueden realizar con matrices de Python Numpy.

Uso de matrices numpy sobre listas de Python

Es importante preguntar que cuando Python ya tiene una estructura de datos sofisticada para contener múltiples elementos que por qué necesitamos matrices numpy en absoluto? Las matrices numpy son Preferido sobre listas de Python Debido a las siguientes razones:

  • Conveniente para usar para operaciones intensivas matemáticas y calculadoras debido a la presencia de funciones numpy compatibles
  • Son mucho más rápidos debido a la forma en que almacenan datos internamente
  • Menos memoria

Nos deja probar que las matrices numpy ocupan menos memoria. Esto se puede hacer escribiendo un programa de pitón muy simple:

importar numpy como np
tiempo de importación
Sys de importación
python_list = rango (500)
Imprimir (SYS.getizeOf (1) * len (python_list))
numpy_arr = np.Arange (500)
imprimir (numpy_arr.tamaño * numpy_arr.itemsize)

Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado:

14000
4000

Esto muestra que la misma lista de tamaño es Más de 3 veces de tamaño en comparación con la matriz Numpy del mismo tamaño.

Realización de operaciones numpy

En esta sección, echemos un vistazo rápidamente sobre las operaciones que se pueden realizar en matrices numpy.

Encontrar dimensiones en la matriz

Como la matriz Numpy se puede usar en cualquier espacio dimensional para contener datos, podemos encontrar la dimensión de una matriz con el siguiente fragmento de código:

importar numpy como np
numpy_arr = np.Array ([(1,2,3), (4,5,6)])
imprimir (numpy_arr.ndim)

Veremos la salida como "2", ya que esta es una matriz bidimensional.

Encontrar el tipo de datos de elementos en la matriz

Podemos usar una matriz Numpy para mantener cualquier tipo de datos. Ahora descubramos el tipo de datos de los datos que contiene una matriz:

OTRO_ARR = NP.Array ([('Awe', 'B', 'Cat')])
Imprimir (OTRO_ARR.dtype)
numpy_arr = np.Array ([(1,2,3), (4,5,6)])
imprimir (numpy_arr.dtype)

Utilizamos diferentes tipos de elementos en el fragmento de código anterior. Aquí está el resultado que este script mostrará:

int64

Esto sucede ya que los personajes se interpretan como personajes unicode y el segundo es obvio.

Remodelar artículos de una matriz

Si una matriz numpy consta de 2 filas y 4 columnas, se puede remodelar contener 4 filas y 2 columnas. Vamos a escribir un fragmento de código simple para el mismo:

original = np.Array ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
Imprimir (original)
remodelado = original.remodelar (4, 2)
Imprimir (remodelado)

Una vez que ejecutemos el fragmento de código anterior, obtendremos la siguiente salida con ambas matrices impresas en la pantalla:

[['1' 'b' 'c' '4']
['5' 'f' 'g' '8']]
[['1' 'B']
['C' '4']
['5' 'f']
['G' '8']]

Observe cómo Numpy se encargó de cambiar y asociar los elementos a nuevas filas.

Operaciones matemáticas en elementos de una matriz

Realizar operaciones matemáticas en elementos de una matriz es muy simple. Comenzaremos escribiendo un fragmento de código simple para averiguar el máximo, mínimo y la adición de todos los elementos de la matriz. Aquí está el fragmento de código:

numpy_arr = np.Array ([(1, 2, 3, 4, 5)])
imprimir (numpy_arr.max ())
imprimir (numpy_arr.min ())
imprimir (numpy_arr.suma())
imprimir (numpy_arr.significar())
Imprimir (NP.sqrt (numpy_arr))
Imprimir (NP.std (numpy_arr))

En las últimas 2 operaciones anteriores, también calculamos la raíz cuadrada y la desviación estándar de cada elemento de matriz. El fragmento anterior proporcionará la siguiente salida:

5
1
15
3.0
[[1. 1.41421356 1.73205081 2. 2.23606798]]
1.4142135623730951

Convertir listas de Python en matrices numpy

Incluso si ha estado utilizando listas de Python en sus programas existentes y no desea cambiar todo ese código, pero aún así desea utilizar matrices numpy en su nuevo código, es bueno saber que podemos convertir fácilmente una Python Lista de una matriz Numpy. Aquí hay un ejemplo:

# Crear 2 nuevas listas altura y peso
altura = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
peso = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Crear 2 matrices numpy desde la altura y el peso
np_height = np.matriz (altura)
np_weight = np.Array (peso)

Solo para verificar, ahora podemos imprimir el tipo de una de las variables:

imprimir (tipo (np_height))

Y esto mostrará:

Ahora podemos realizar operaciones matemáticas sobre todos los elementos a la vez. Veamos cómo podemos calcular el IMC de la gente:

# Calcular el IMC
bmi = np_weight / np_height ** 2
# Imprimir el resultado
Imprimir (BMI)

Esto mostrará el IMC de todas las personas calculadas en cuanto al elemento:

[dieciséis.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

¿No es tan fácil y útil?? Incluso podemos filtrar datos fácilmente con una condición en lugar de un índice dentro de los soportes cuadrados:

BMI [IMC> 25]

Esto dará:

Array ([29.54033934, 39.02460418, 29.8200692])

Crear secuencias y repeticiones aleatorias con Numpy

Con muchas características presentes en Numpy para crear datos aleatorios y organizarlos en una forma requerida, las matrices Numpy se usan muchas veces para generar un conjunto de datos de prueba en muchos lugares, incluidos los propósitos de depuración y prueba. Por ejemplo, si desea crear una matriz de 0 a N, podemos usar el arange (tenga en cuenta el único 'r') como el fragmento dado:

Imprimir (NP.Arange (5))

Esto devolverá la salida como:

[0 1 2 3 4]

La misma función se puede usar para proporcionar un valor más bajo para que la matriz comience desde otros números de 0:

Imprimir (NP.Arange (4, 12))

Esto devolverá la salida como:

[4 5 6 7 8 9 10 11]

Los números no necesitan ser continuos, pueden omitir un paso de solución como:

Imprimir (NP.Arange (4, 14, 2))

Esto devolverá la salida como:

[4 6 8 10 12]

También podemos obtener los números en un orden decreciente con un valor de omisión negativo:

Imprimir (NP.Arange (14, 4, -1))

Esto devolverá la salida como:

[14 13 12 11 10 9 8 7 6 5]

Es posible financiar n números entre x e y con el espacio igual con el método linspace, aquí está el fragmento de código para el mismo:

notario público.linspace (inicio = 10, parada = 70, num = 10, dtype = int)

Esto devolverá la salida como:

Array ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])

Tenga en cuenta que los elementos de salida no están igualmente espaciados. Numpy hace todo lo posible para hacerlo, pero no necesita confiar en ello, ya que hace el redondeo.

Finalmente, veamos cómo podemos generar un conjunto de secuencia aleatoria con Numpy, que es una de las funciones más utilizadas para fines de prueba. Pasaremos un rango de números a Numpy que se utilizarán como un punto inicial y final para los números aleatorios:

Imprimir (NP.aleatorio.randint (0, 10, tamaño = [2,2]))

El fragmento anterior crea una matriz Numpy 2 por 2 dimensional que contendrá números aleatorios entre 0 y 10. Aquí está la salida de muestra:

[[0 4]
[8 3]]

Tenga en cuenta que como los números son aleatorios, la salida puede diferir incluso entre las 2 ejecuciones en la misma máquina.

Conclusión

En esta lección, observamos varios aspectos de esta biblioteca informática que podemos usar con Python para calcular problemas matemáticos simples y complejos que pueden surgir en varios casos de uso El Numpy es una de las bibliotecas de computación más importantes cuando se trata de Ingeniería de datos y calcular DAT numérico, definitivamente una habilidad que necesitamos tener bajo nuestro cinturón.

Comparta sus comentarios sobre la lección en Twitter con @Sbmaggarwal y @Linuxhint.