Das Folgende ist ein auf das Wesentliche reduziertes real-world Problem, bloß mit geringeren Dimensionen.
Sagen wir, ich möchte ein n-dimensionales Array "all" erzeugen mit den Dimensionen (10, 10, 100)
all = np.empty((10, 10, 100))
weiters habe ich ein 1d array, hier simuliert als
data = np.arange(0, 100)
für alle i, j möchte ich nun erreichen dass
all[i,j]=data
Also mache ich:
all[:, :]=data
Das funktioniert natürlich.
Aber nun möchte ich data auf ein shape (100, 10, 10) einspielen. Das kann ich ja machen mit
all2 = np.empty((100, 10, 10)) # neues Zeiel
for i in range(100):
for j in range(10):
for k in range(10):
all2[i, j, k]=data[i]
Aber geht das auch einfacher ohne zu loopen? Würde mich wundern, wenn das nicht eleganter ginge, aber ich sehe nicht wie.