Ich habe ein Array a
wie dieses:
a = [[40, 10], [50, 11]]
Ich muss den Mittelwert für jede Dimension separat berechnen. Das Ergebnis sollte folgendes sein:
[45, 10.5]
45
der Mittelwert von a[*][0]
und 10.5
der Mittelwert von a[*][1]
.
Was ist die eleganteste Art, dies ohne Verwendung einer Schleife zu lösen?
In [n]:
bedeutet das? Ist das Teil des Codes?axis=0
anstelle vonaxis=1
axis=0
ist in der nächsten Zeile. Ich habe bearbeitet, um mehr Informationen anzuzeigen, vielleicht zu aktualisieren?mean = np.mean(a, axis=(0,2,3)) mean?
wissen, dass der Eingangstensor (a) eine Form hat (Charge, Kanal, Breite, Höhe)?Hier ist eine nicht numpy Lösung:
>>> a = [[40, 10], [50, 11]] >>> [float(sum(l))/len(l) for l in zip(*a)] [45.0, 10.5]
quelle
Wenn Sie dies häufig tun, ist NumPy der richtige Weg.
Wenn Sie NumPy aus irgendeinem Grund nicht verwenden können:
>>> map(lambda x:sum(x)/float(len(x)), zip(*a)) [45.0, 10.5]
quelle