Es scheint, dass ich in etwas potenziell albern verloren bin. Ich habe ein n-dimensionales numpy Array und ich möchte es mit einem Vektor (1d Array) entlang einer Dimension multiplizieren (was sich ändern kann!). Als Beispiel sagen, dass ich entlang der Achse eines 2D-Arrays von einem 1D-Array multiplizieren möchten 0 des ersten Arrays, ich etwas tun kann:Multiplizieren numpy ndarray mit 1d Array entlang einer gegebenen Achse
a=np.arange(20).reshape((5,4))
b=np.ones(5)
c=a*b[:,np.newaxis]
Einfach, aber ich möchte diese Idee erweitern n-Dimensionen (für a, während b immer 1d ist) und zu jeder Achse. Mit anderen Worten, ich würde gerne wissen, wie man eine Scheibe mit der np.newaxis an der richtigen Stelle erzeugt. Sagen, dass ein 3D ist, und ich möchte entlang der Achse multiplizieren = 1, würde Ich mag die Scheibe erzeugen, die korrekt geben würde:
c=a*b[np.newaxis,:,np.newaxis]
D.h. Angesichts der Anzahl der Dimensionen eine (etwa 3), und die Achse, entlang der I (etwa Achse = 1) multiplizieren sollen, wie geben I erzeugen und die Scheibe:
np.newaxis,:,np.newaxis
Dank.
Können Sie etwas mehr über das, was Sie damit erreichen wollen, erklären? –
Ich habe Daten auf einem ndarray, und ich möchte die Daten mit einem Filter entlang einer Achse multiplizieren. –