Gibt es eine einfache Möglichkeit, ein unveränderliches NumPy-Array zu erstellen?
Wenn man eine Klasse ableiten muss, um ndarray
dies zu tun, was ist die Mindestmenge an Methoden, die man überschreiben muss, um Unveränderlichkeit zu erreichen?
Gibt es eine einfache Möglichkeit, ein unveränderliches NumPy-Array zu erstellen?
Wenn man eine Klasse ableiten muss, um ndarray
dies zu tun, was ist die Mindestmenge an Methoden, die man überschreiben muss, um Unveränderlichkeit zu erreichen?
Antworten:
Sie können ein numpy-Array nicht beschreibbar machen:
a = np.arange(10)
a.flags.writeable = False
a[0] = 1
# Gives: ValueError: assignment destination is read-only
Siehe auch die Diskussion in diesem Thread:
http://mail.scipy.org/pipermail/numpy-discussion/2008-December/039274.html
und die Dokumentation:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flags.html
a.setflags(write=False)
.
setflags()
oder flags.writeable=
?
.flags.writeable = False
sind immer noch nicht unveränderlich. Wenn x
es sich um ein Array handelt, wird y = x[:]; x.flags.writeable = False; y[0] = 5
das erste Element von x
to aktualisiert 5
.