La manera más rápida de la comprensión de lista al calcular la distancia con una lista fija.
Tengo una lista,
a = [1,2,3]
Ahora tengo otra lista de listas (que es del mismo tamaño que la anterior),
x=[[1,2,3], [4,5,6], [7,8,9]]
Ahora quiero calcular la distancia entre cada elemento en x con a usando la distancia del coseno, así que estoy usando esto,
from scipy import spatial
distances = [spatial.distance.cosine(a, i) for i in x]
Ahora el método anterior está tardando mucho tiempo en ejecutarse, estoy buscando una forma alternativa de hacer esto de la manera más eficiente.
davy.ai
Un posible método alternativo para calcular la distancia del coseno entre cada elemento en
x
ya
de manera más eficiente es utilizar comprensión de listas con matrices numpy en lugar de listas de Python. Las matrices numpy son generalmente más rápidas y eficientes al trabajar con datos numéricos. Aquí está un ejemplo:En este código actualizado, primero convertimos
a
yx
en matrices numpy usandonp.array()
. Luego, podemos usar el código de comprensión de lista para calcular la distancia del coseno entre cada fila enx
ya
. Esto debería ser más rápido y eficiente que usar listas de Python.