Ejemplo del producto escalar en Python

Autor: | Última modificación: 12 de enero de 2023 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

El producto escalar en Python de dos vectores se define como la suma de los productos de sus elementos. Geométricamente, se entiende como el módulo de uno de ellos por la proyección de otro sobre él.

¿Qué es el producto escalar?

Ejemplo del producto escalar en Python

Considerando dos vectores u y v, el producto escalar viene definido por:

Ejemplo del producto escalar en Python 1

También puede escribirse de la siguiente forma, que es interesante para poder calcular la similitud entre 2 vectores:

Ejemplo del producto escalar en Python 2

Esto genera como resultado un escalar.

Las propiedades algebraicas de un producto escalar son:

  • Propiedad conmutativa: u . v = v . u
  • Homogeneidad: (α u) . v = α (u . v)
  • Propiedad distributiva: (v1 + v2) . x = v1 . x + v2 . x

Ejemplo del producto escalar en Python

Veamos cómo funciona el producto escalar en Python.

Vamos a definir dos vectores, u y v:

#Ejemplo del producto escalar en Python
u = np.array ([20, 30, 40, 50])
v = np.array ([100, 200, 300, 400])

El producto escalar en Python puede calcularse usando el operador @:

u @ v

4000

El operador @ es válido únicamente para numpy arrays, no para listas:

#Ejemplo del producto escalar en Python
u_list = list (u)
v_list = list (v)

u_list @ v_list
Ejemplo del producto escalar en Python 3

¿Qué sucede si introducimos vectores de distinto tamaño? Echándole un vistazo a la ecuación que define el producto escalar, podemos determinar el comportamiento que tendrá.

Ya hemos visto un poco la tendencia cuando hemos estado intentando entender ciertos tipos de errores. Esta tendencia consiste en que, si introducimos distintos tipos de arrays o realizamos el producto escalar con distintas dimensiones, no funciona.

Esto tiene sentido, porque con base en la ecuación que hemos visto, debería tener el mismo número de componentes.

#Ejemplo del producto escalar en Python
a_np = np.array ([1, 2])
b_np = np.array ([3, 4, 6])

a_np @ b_np
Ejemplo del producto escalar en Python 4

Por ende, el error que nos aparece es el anterior, en donde dice que, en efecto, el tamaño de la matriz 1 es diferente al de la matriz 2.

Ejercicio

Vamos a ver un ejercicio relacionado con el tema. A continuación, calculamos el producto escalar en Python de dos vectores sin usar numpy. Los vectores son u = [1, 3, 5, 7] y v = [2, 4, 6, 8].

Lo primero que haremos, como siempre, es definir los dos vectores.

Luego establecemos una lista vacía para almacenar el resultado y, posteriormente, iteramos sobre ambos vectores al mismo tiempo.

Por último hacemos una multiplicación.

#Ejercicio del producto escalar en Python
u = [1, 3, 5, 7]
v = [2, 4, 6, 8]

res = [ ]
for i, k in zip (u, v):
res.append (i * k)

print (res)

[2, 12, 30, 56]

Esto nos dio una lista con la multiplicación de cada valor.

Pero no es el producto escalar, ya que el producto escalar en su definición tiene una suma, que haremos del siguiente modo, para que nos dé el valor final:

#Ejercicio del producto escalar en Python
u = [1, 3, 5, 7]
v = [2, 4, 6, 8]

res = [ ]
for i, k in zip (u, v):
res.append (i * k)

sum (res)

100

Lo podríamos hacer de una forma más compacta con las listas de compresión:

u = [1, 3, 5, 7]
v = [2, 4, 6, 8]

sum (u [i] * v [i] for i in range (lem (u)))

100

Aquí lo que hemos hecho es iterar sobre la longitud del vector u para variar un poco. Esto nos permite obtener los componentes de ambos vectores al mismo tiempo.

Ahora codificaremos unas líneas en las que se nos imprimirán los índices de los componentes del vector u:

for i in range (len (u)):
print (i)

0

1

2

3

O incluso mejor aún:

sum (np.array (u) * np.array (v))

100

Veamos otra forma más de hacer este ejercicio:

u_np = np.array ([1, 3, 5, 7])
v_np = np.array ([2, 4, 6, 8])

np.dot (u_np, v_np)

100

¿Quieres seguir aprendiendo?

Ahora que hemos visto cómo funciona el producto escalar en Python, podemos seguir aprendiendo sobre Big Data, una de las disciplinas más demandadas de la actualidad. Para ello tenemos el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva e íntegra en la que podrás adquirir todos los conocimientos teóricos y prácticos que se necesitan para incursionar en el mercado laboral de forma rápida y eficiente.¡Cambia tu futuro y solicita más información!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.