Ich habe vor kurzem this Lösung für die Mittelwertbildung alle N Zeilen der Matrix angewendet. Obwohl die Lösung im Allgemeinen funktioniert, hatte ich Probleme bei der Anwendung auf ein 7x1-Array. Ich habe festgestellt, dass das Problem bei der Verwendung des -=
Operators auftritt. Um ein kleines Beispiel zu machen:Unterschied zwischen a - = b und a = a - b in Python
import numpy as np
a = np.array([1,2,3])
b = np.copy(a)
a[1:] -= a[:-1]
b[1:] = b[1:] - b[:-1]
print a
print b
die Ausgänge:
[1 1 2]
[1 1 1]
So wird im Fall eines Arrays a -= b
erzeugt ein anderes Ergebnis als a = a - b
. Ich dachte bis jetzt, dass diese beiden Wege genau gleich sind. Was ist der Unterschied?
Wie kommt es, dass die Methode, die ich für das Summieren jeder N Zeilen in einer Matrix erwähne, z. für eine 7x4-Matrix, aber nicht für eine 7x1-Matrix?
Ich bevorzuge diese Antwort mehr zu der derzeit akzeptierten. Es verwendet eine sehr klare Sprache, um den Effekt der Modifizierung von mutablen Objekten an Ort und Stelle zu zeigen. Noch wichtiger ist, dass im letzten Absatz direkt auf die Bedeutung der direkten Anpassung für überlappende Ansichten hingewiesen wird. Dies sollte die Lehre sein, die man aus dieser Frage mitnehmen sollte. – Reti43