Calcule el producto escalar de dos listas en Python
-
Usando la función
sum()
yzip()
para calcular el producto escalar en Python -
Calcule el producto escalar utilizando las funciones
map()
ymul()
en Python -
Calcule el producto punto utilizando
more_itertools.dotproduct
en Python - Calcule el producto punto usando NumPy en Python
El producto punto es una operación matemática también conocida como producto escalar. Un producto escalar es una expresión algebraica que toma una secuencia de dos longitudes iguales y devuelve un solo número como resultado.
Usando la función sum()
y zip()
para calcular el producto escalar en Python
Podemos calcular el producto escalar de listas de igual longitud utilizando la función zip()
y la función sum()
.
La función zip
devuelve un objeto zip combinando elementos en una secuencia de tuplas de ambos iterables. Por otro lado, la función sum
devuelve la suma de elementos en iterables como listas.
Dado que el producto escalar involucra matemáticamente una serie de sumas y productos de elementos de la secuencia de números, podemos calcular el producto escalar de dos listas usando las combinaciones de estos dos.
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(sum([i * j for (i, j) in zip(num1, num2)]))
Producción :
1100
Calcule el producto escalar utilizando las funciones map()
y mul()
en Python
El módulo operador
en Python proporciona un conjunto de funciones para importar y usar operadores intrínsecos en Python para realizar varias operaciones.
Estas operaciones incluyen operaciones lógicas, operaciones de secuencia, operaciones matemáticas y comparación de objetos. La función mul()
realiza la multiplicación por elementos de objetos con una serie de números como marcos de datos.
Por otro lado, la función map()
es una función incorporada que nos permite aplicar una determinada función a todos los elementos de un iterable. Finalmente, también usaríamos la función sum()
para calcular la suma de los productos de las dos listas de valores numéricos, como se muestra en el código a continuación.
from operator import mul
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(sum(map(mul, num1, num2)))
Producción :
1100
Calcule el producto punto utilizando more_itertools.dotproduct
en Python
Python more_itertools
es una biblioteca de Python que proporciona funciones elegantes para trabajar con iterables en Python. Las funciones proporcionadas por la biblioteca more_itertools
nos permiten agrupar y seleccionar iterables entre otras operaciones como ventanas, combinatoria y envoltura.
La biblioteca more_itertools
no solo proporciona soluciones para iteraciones complejas; también es más elegante y eficiente en memoria. Usando la función more_itertools.product()
, podemos calcular el producto escalar de una secuencia de números en una lista como se muestra a continuación.
import more_itertools as mit
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
print(mit.dotproduct(num1, num2))
Producción :
1100
Calcule el producto punto usando NumPy en Python
NumPy es un paquete científico de Python que nos permite trabajar con objetos multidimensionales como arreglos y matrices.
NumPy es rápido pero más eficiente ya que podemos lograr mucho usando muy poco código. Podemos trabajar sin problemas con arreglos sin indexación explícita ni bucles a través de su código vectorizado.
A continuación se muestra una solución que utiliza un bucle for y la combinación del producto y el operador de suma para calcular el producto escalar de dos listas.
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
dot_product = 0
for x, y in zip(num1, num2):
dot_product = dot_product + x * y
print("The dot product of the two lists is: ", dot_product)
Producción :
The dot product of the two lists is: 1100
Aunque esta solución calcula el producto escalar, NumPy ofrece una alternativa más elegante sin escribir ningún bucle.
Usando el método numpy.dot()
, podemos calcular fácilmente el producto escalar de una secuencia de números en dos listas. Esta solución es precisa y, por lo tanto, no es propensa a errores y puede implementarse en el siguiente código.
import numpy as np
num1 = [2, 4, 6, 8, 10]
num2 = [10, 20, 30, 40, 50]
dot_product = np.dot(num1, num2)
print("The dot product of the two lists is: ", dot_product)
Producción :
The dot product of the two lists is: 1100
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedInArtículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python