So beschleunigen Sie eine Vektor-Cross-Product-Berechnung

Hallo, ich bin relativ neu hier und versuche einige Berechnungen mit Numpy durchzuführen. Ich erlebe eine lange Zeit nach einer bestimmten Berechnung und kann nicht schneller herausfinden, wie ich dasselbe erreichen kann.

Grundsätzlich ist es Teil eines Algorithmus zum Schneiden von Strahlendreiecken, und ich muss alle Vektor-Kreuzprodukte aus zwei Matrizen unterschiedlicher Größe berechnen.

Der Code, den ich verwendete, war:

allhvals1 = numpy.cross( dirvectors[:,None,:], trivectors2[None,:,:] )

wodirvectors ist ein Array vonn* vectors (xyz) undtrivectors2 ist ein Array vonm*vectors(xyz). allhvals1 ist ein Array der Querprodukte der Größen*M*vector (xyz). Dies funktioniert aber ist sehr langsam. Es ist im Wesentlichen die n * m-Matrix jedes Vektors aus jedem Array. Hoffe, dass du verstehst. Die Größen variieren von ca. 1-4000 je nach Parameter (ich zerlege die dirvectors grundsätzlich je nach Größe).

Jeder Rat ist willkommen. Leider ist meine Matrixmathematik etwas flockig.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage