Ich habe folgende numpy Arrays:Numpy Vektorisierung von Sliding-Window-Betrieb
arr_1 = [[1,2],[3,4],[5,6]] # 3 X 2
arr_2 = [[0.5,0.6],[0.7,0.8],[0.9,1.0],[1.1,1.2],[1.3,1.4]] # 5 X 2
arr_1
ist eindeutig ein 3 X 2
Array, während ein arr_2
5 X 2
Array ist.
Jetzt ohne Schleifenbildung, ich möchte elementarweise arr_1 und arr_2 multiplizieren, so dass ich eine Schiebefenstertechnik (Fenstergröße 3) auf arr_2 anwende.
Example:
Multiplication 1: np.multiply(arr_1,arr_2[:3,:])
Multiplication 2: np.multiply(arr_1,arr_2[1:4,:])
Multiplication 3: np.multiply(arr_1,arr_2[2:5,:])
Ich mag dies eine Matrixmultiplikation Form in irgendeiner Art tun, um es schneller als meine aktuelle Lösung, die von der Form:
for i in (2):
np.multiply(arr_1,arr_2[i:i+3,:])
Also, wenn die Anzahl der Zeilen in arr_2 ist groß (in der Größenordnung von Zehntausenden), skaliert diese Lösung nicht wirklich sehr gut.
Jede Hilfe würde sehr geschätzt werden.
Sie sind ein Zauberer. Dieses Rundfunkkonzept hat mich umgehauen! Vielen Dank! – Nikhil