Ich habe einen Basisvektor (bestehend aus 1 und 0) und ich möchte den Kosinus Abstand zu 50.000 anderen Vektoren finden (auch von 1 und 0 aus). Ich habe viele Möglichkeiten gefunden, um eine ganze Matrix paarweiser Entfernung zu berechnen, aber das interessiert mich nicht. Ich bin nur daran interessiert, die 50.000 Distanzen meines Basisvektors gegen jeden anderen Vektor zu bekommen (und dann zu sortieren, um die Top 5 zu finden). Wie kann ich das am schnellsten erreichen?Pairwise Abstand Python (ein Basisvektor gegen viele andere)
3
A
Antwort
1
Der vektorisiert Betrieb ist genau das gleiche wie sie einzeln zu tun, so lange wie Sie mit den Achsen vorsichtig sind. Hier habe ich individuelle "andere" Vektoren in jeder Zeile:
others = numpy.random.randint(0,2,(10,10))
base = numpy.random.randint(0,2,(10,1))
d = numpy.inner(base.T, others)/(numpy.linalg.norm(others, axis=0) * numpy.linalg.norm(base))
Also, wie hast du diese Matrix berechnet? Warum berechnen Sie es nicht einfach für jeden Vektor? – MisterMiyagi