Das folgende Beispiel ist für mich seltsam. Die Arrays a
und c
sind unterschiedlich, aber bei der Modifikation des ersten Elements von a
ändert sich auch das erste Element von c
. Warum ist das numpy
Array so implementiert? Wenn a
als Liste zugewiesen ist, ändert das Ändern des ersten Elements von a
nicht das erste Element von c
. Ich kann mir kein Beispiel vorstellen, bei dem das Verhalten des Arrays numpy
gewünscht wäre.Seltsame Kopie Konstruktion von numpy Array
import numpy as np
a = np.arange(3,5)
#a = [3, 4]
b = a
c = a[:]
d = a.copy()
print(a is b) # True
print(a is c) # False
print(a is d) # False
print(a, b, c, d) #[3 4] [3 4] [3 4] [3 4]
a[0] = -11.
print(a, b, c, d) #[-11 4] [-11 4] [-11 4] [3 4] HUH?!
'a [:]' ist für Listen und Arrays unterschiedlich; Die Indizierungsmethoden '__getitem__' sind anders. – hpaulj