Gibt es eine einfache Möglichkeit, ein unveränderliches NumPy-Array zu erstellen?
Wenn man eine Klasse ableiten muss, um ndarraydies 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 ndarraydies 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 = Falsesind immer noch nicht unveränderlich. Wenn xes sich um ein Array handelt, wird y = x[:]; x.flags.writeable = False; y[0] = 5das erste Element von xto aktualisiert 5.