¿Existe una forma sencilla de crear una matriz NumPy inmutable?
Si uno tiene que derivar una clase ndarraypara hacer esto, ¿cuál es el conjunto mínimo de métodos que uno tiene que anular para lograr la inmutabilidad?
¿Existe una forma sencilla de crear una matriz NumPy inmutable?
Si uno tiene que derivar una clase ndarraypara hacer esto, ¿cuál es el conjunto mínimo de métodos que uno tiene que anular para lograr la inmutabilidad?
Respuestas:
Puede hacer que una matriz numpy no se pueda escribir:
a = np.arange(10)
a.flags.writeable = False
a[0] = 1
# Gives: ValueError: assignment destination is read-only
También vea la discusión en este hilo:
http://mail.scipy.org/pipermail/numpy-discussion/2008-December/039274.html
y la documentación:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flags.html
a.setflags(write=False).
setflags()o flags.writeable=?
.flags.writeable = Falsetodavía no son inmutables. Si xes una matriz, y = x[:]; x.flags.writeable = False; y[0] = 5actualiza el primer elemento de xa 5.