Matemáticas con Numpy
Operaciones aritméticas con un mismo valor.
Todas las operaciones aritméticas básicas (sumar, restar, multiplicar y dividir) que se puedan hacer con matrices se pueden hacer en Numpy. Se puede operar un único valor con todos los elementos del array, elemento a elemento, usando los signos matemáticos + (sumar), - (restar), * (multiplicar), / (dividir), ** (potenciación), // (división, cociente como entero).
Puedes encontrar todas las operaciones matemáticas que se pueden hacer con Numpy en su documentación en este enlace.
Por ejemplo:
>>> import numpy as np
>>> a=np.array([3,4,5])
>>> b=3
>>> print(a*b)
[ 9 12 15]
>>> print(a+b)
[6 7 8]
>>> print(a-b)
[0 1 2]
>>> print(a/b)
[1. 1.33333333 1.66666667]
>>> print(a**b)
[ 27 64 125]
>>> print(a*a)
[ 9 16 25]
Operaciones elementales.
>>> import numpy as np, math
>>> a=np.linspace(-math.pi,math.pi,8)
>>> print(a)
[-3.14159265 -2.24399475 -1.34639685 -0.44879895 0.44879895 1.34639685
2.24399475 3.14159265]
>>> print(np.sin(a))
[-1.22464680e-16 -7.81831482e-01 -9.74927912e-01 -4.33883739e-01
4.33883739e-01 9.74927912e-01 7.81831482e-01 1.22464680e-16]
Esto no lo podríamos hacer de forma tan sencilla usando el módulo math, porque te daría error.
>>> print(math.sin(a))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-6e5434b920e7> in <module>
----> 1 print(math.sin(a))
TypeError: only size-1 arrays can be converted to Python scalars
Operaciones con matrices de la misma dimensión.
Al igual que hemos visto antes, podemos hacer las mismas operaciones aritméticas sencillas con matrices que tengan la misma dimensión.
Por ejemplo creamos una matriz de dimensiones 2x3 llamada "a" con unos valores ya dados y otra "b" de dimensiones 2x3 rellena con unos. Y vamos a sumarlas y restarlas elemento a elemento.
Y al igual que con la suma y la resta podríamos hacerlo con la multiplicación y división.
Operaciones con matrices de diferentes dimensiones.
y lo mismo ocurriría con la división.
Funciones matemáticas para operar con arrays.
>>> import numpy as np
>>> a=np.array([[2,5,7],[4,3,8]])
>>> print(np.max(a))
8
>>> import numpy as np
>>> a=np.array([[2,5,7],[4,3,8]])
>>> print(np.sum(a))
29
>>> import numpy as np
>>> a=np.array([[2,5,7],[4,3,8]])
>>> print(np.mean(a))
4.833333333333333
Hay muchísimas funciones para cualquier cosa que necesites hacer con los array con lo cual lo mejor es consultar la documentación y ver la información sobre la función que buscas.
Gráficos con Numpy.
Esta librería se integra perfectamente con MatPlotLib.pyplot a la hora de realizar gráficos de forma sencilla con nuestros datos. Solo tenemos que pasar los arrays con los datos a MatPlotLib.pyplot que se encargará de todo.
Por ejemplo si queremos hacer una gráfica de la función seno, la podríamos realizar de la siguiente manera.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi,200)
y = np.sin(x)
plt.plot(x,y,label='funcion seno')
plt.legend()
plt.xlabel('Eje de las X')
plt.ylabel('Eje de las Y')
plt.title('Función seno Radianes')
plt.show()
Puedes encontrar más información sobre realizar graficos en Python con MatPlotLib en este post.
Vamos a repasar lo que hemos visto hasta ahora y ampliar de forma somera algunos conceptos, a forma de resumen donde puedas buscar las operaciones más comunes que se pueden hacer con arrays.
OPERACIONES ELEMENTO A ELEMENTO
Hemos visto que en las operaciones que se realizan entre un array y un escalar, todas se hacen elemento a elemento.
Con escalares
>>> a = np.array([1, 2, 3, 4])
>>> a + 1
array([2, 3, 4, 5])
>>> 2**a
array([ 2, 4, 8, 16])
Toda las operaciones aritméticas son elemento a elemento
>>> b = np.ones(4) + 1
>>> a - b
array([-1., 0., 1., 2.])
>>> a * b
array([ 2., 4., 6., 8.])
>>> j = np.arange(5)
>>> 2**(j + 1) - j
array([ 2, 3, 6, 13, 28])
Advertencia Importante: Multiplicación de arreglos no es multiplicación matricial:
>>> a = np.array([[2,0,1],[3,0,0],[5,1,1]])
>>> b = np.array([[1,0,1],[1,2,1],[1,1,0]])
>>> print(a*b)
[[2 0 1]
[3 0 0]
[5 1 0]]
Comparaciones de Arrays.
>>> a = np.array([1, 2, 3, 4])
>>> b = np.array([4, 2, 2, 4])
>>> a == b
array([False, True, False, True], dtype=bool)
>>> a > b
array([False, False, True, False], dtype=bool)
Operaciones Lógicas
>>> a.T # también, a.transpose()
No hay comentarios:
Publicar un comentario