¿Sabías que se puede hacer suma y resta de vectores? Los vectores son una tupla de números reales, que se denominan como componentes del vector mismo. Los vectores pueden tener múltiples dimensiones. En este caso, te enseñaremos cómo hacer suma y resta de vectores.
Suma y resta de vectores
Diferencia entre vectores (arrays) y listas
A simple vista, podríamos pensar que los arrays y las listas son la misma cosa. No obstante, existe una diferencia sustancial entre estos dos.
Veamos cómo se crea un array:
#Suma y resta de vectores
#importamos la librería numpy para poder hacer operaciones y trabajar con arrays
import numpy as np
#creamos el array
ex = np.array ([2, 3, 4, 5, 6, 7])
[2, 3, 4, 5, 6, 7]
Verificamos que esté catalogado como array:
print (type (ex))
<class ‘numpy.ndarray’>
Ahora creemos una lista y verifiquemos su tipo:
print (type ([2, 3, 4, 5, 6, 7]))
<class ‘list’>
He aquí la principal diferencia entre los arrays y las listas: con los arrays podemos hacer operaciones matemáticas y con las listas no.
Ahora sí, veamos cómo realizar suma y resta de vectores.
Suma de vectores
El vector suma está definido por:
[u1, u2, …, un] + [v1, v2, …, vn] = [u1 + v1, u2 + v2, un + vn]
Para cualquier vector u, v, w se tiene:
- Propiedad asociativa: (u + v) + w = u + (v + w)
- Propiedad conmutativa: u + v = v + u
#Suma y resta de vectores
import numpy as np
x_np = np.array ([1, 5, 2])
y_np = np.array ([7, 4, 1])
x_np + y_np
array ([8, 9, 3])
¿Qué sucede si no usamos np.array?
x_list = list (x_np)
y_list = list (y_np)
x_list + y_list
[1, 5, 2, 7, 4, 1]
Python considera las variables x e y como listas, por lo que las concatena al usar el operador +.
print (type (x_list))
print (type (y_list))
<class ‘list’>
<class ‘list’>
Sin embargo, al usar np.array se considera un array.
print (type (x_np))
<class ‘numpy.ndarray’>
Resta de vectores
La resta de vectores se realiza del mismo modo que la suma:
#Suma y resta de vectores
x_np - y_np
array ([-6, 1, 1])
¿Qué hace internamente numpy cuando sumamos dos arrays?
Veamos un ejercicio en el que procederemos con la suma de estos dos arrays [2, 3, 10] y [10, 20, 30]. Debemos emplear un bucle para ejecutar esta tarea.
#Suma y resta de vectores
a = [2, 3, 10]
b = [10, 20, 30]
res = [ ]
for i, z in zip (a, b):
res.append (i + z)
print (res)
[12, 23, 40]
De una forma más compacta:
[i + z for i, z in zip (a, b)]
[12, 23, 40]
El uso de shape
¿Qué sucede si introducimos dos arrays de distinta longitud?
#Suma y resta de vectores
x_np = np.array ([1, 5])
y_np = np.array ([7, 4, 1])
x_np + y_np
Como era de esperar, nos sale un error, porque un array tiene dos componentes y el otro tiene tres.
Podemos imprimir su longitud usando el comando shape:
x_np.shape
(2, )
y_np.shape
(3, )
Existe una diferencia entre usar len y usar shape. Por ejemplo, si definimos el siguiente array:
#Suma y resta de vectores
z_np = np.array ([1, 2, 3])
w_np = np.array ([[1, 2, 3]), ([4, 5, 6]])
Veamos qué pasa si usamos len:
print (len (z_np))
print (len (w_np))
3
2
La longitud del array z_np es 3 y la longitud de w_np es 2. Esto sucede porque lo que se está haciendo internamente es contar el número de componentes que tiene el array.
Veamos qué sucede si usamos shape:
print (z_np.shape)
print (w_np.shape)
(3, )
(2, 3)
Este es un poco más descriptivo. Nos dice que el vector z tiene 3 componentes y que el vector w tiene 2 componentes y en cada componente tiene 3 componentes.
Si tuviéramos más dimensiones, el shape también lo tendría en cuenta.
y_np = np.array ([[[1, 2, 3],
[4, 5, 6]],
[[1, 2, 3],
[4, 5, 6]]
])
print (y_np.shape)
(2, 2, 3)
Esto sucede porque w_np es una matriz de 2 filas y 3 columnas. Sin embargo, z_np es solo un vector de 3 dimensiones.
¿Qué sigue?
El Big Data es una de las áreas en las que más trabajos se ofertan. Si quieres ser uno de los afortunados que puede acceder a estas opciones laborales, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que adquirirás todos los conocimientos a nivel teórico y práctico, lo que te permitirá obtener el trabajo de tus sueños. ¡No esperes más para transformar tu futuro y solicita más información ahora!