Hallo an alle,Python - Numpy: 3D-Matrix * 2D-Vektor schnelle Berechnung
Hier ist, was ich tun möchte. Ich habe zwei Arrays bekam:
- rotation_matrices die 50 zweidimensionale Drehmatrizen enthält. Jede Rotationsmatrix ist als (2,2) geformt. So wird rotation_matrices als (2,2,50) geformt.
- Vektoren, die 50 zweidimensionale Vektoren enthält. Somit ist es geformt als (2,50).
Ich möchte (falls vorhanden) eine einzeilige numpy Operation, die mir die (2,50) Array gibt, die die gedrehten Vektoren enthält, nennen wir es rotated_vectors. Was ich meine ist, dass das k-ith-Element von rotierte_vektoren das Produkt der k-ith-Rotationsmatrix mit dem k-i-ten Vektor enthält.
Im Moment habe ich mit der Schleife kommen, der folgt:
for ind,elt in enumerate(np.arange(nb_of_vectors)):
rotated_vector[ind] = np.dot(rotation_matrices[:,:,ind], vectors[:,ind])
ich Verbesserungs denke, es gibt Raum. Wenn Sie einen Vorschlag haben, sind Sie willkommen.
Vielen Dank für Ihre Zeit.
Jagaral
Vielen Dank für Ihre Antwort. Es verbessert meinen Code erheblich. Ich versuche Schleifen so gut wie möglich zu vermeiden. Ich werde mich an diese Art des Codierens gewöhnen Ich hoffe =) – Jagaral
@Jagaral Ich hoffe, du tust es! Viel Glück. – Divakar
@Jagaral Vergessen Sie nicht, eine der Antworten zu akzeptieren. Lesen Sie mehr über die Annahme von Antworten hier: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Divakar