Warum liefert dieses Slicing-Beispiel nicht die gleichen Ergebnisse wie Standardlisten? Es funktioniert so, als ob es zuerst an[:2] = bn[:2]
und dann bn[:2] = an[:2]
auswertet.Warum funktioniert dieses Slicing-Beispiel in NumPy nicht so wie es mit Standardlisten funktioniert?
import numpy as np
l1 = [1, 2, 3]
l2 = [4, 5, 6]
a = list(l1)
b = list(l2)
an = np.array(a)
bn = np.array(b)
print(a, b)
a[:2], b[:2] = b[:2], a[:2]
print(a, b)
print(an, bn)
an[:2], bn[:2] = bn[:2], an[:2]
print(an, bn)
Ausgang:
--------------------
[1, 2, 3] [4, 5, 6]
[4, 5, 3] [1, 2, 6]
--------------------
[1 2 3] [4 5 6]
[4 5 3] [4 5 6]
--------------------
Wenn ich es so machen - alles funktioniert:
dummy = an[:2]
an[:2] = bn[:2]
bn[:2] = dummy
Hm. Vielen Dank. Ich werde es akzeptieren, sobald die Abklingzeit abgelaufen ist. – userqwerty1