¿Existe alguna manera simple de crear una matriz NumPy inmutable?matriz numpy inmutable?
Si tiene que derivar una clase de ndarray
para hacer esto, ¿cuál es el conjunto mínimo de métodos que uno tiene que anular para lograr la inmutabilidad?
¿Existe alguna manera simple de crear una matriz NumPy inmutable?matriz numpy inmutable?
Si tiene que derivar una clase de ndarray
para hacer esto, ¿cuál es el conjunto mínimo de métodos que uno tiene que anular para lograr la inmutabilidad?
Usted puede hacer una matriz numpy unwriteable:
a = np.arange(10)
a.flags.writeable = False
a[0] = 1
# Gives: RuntimeError: array is not writeable
Véase también la discusión en este tema:
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
Alternativamente, 'a.setflags (write = False)'. – lafras
@lafrasu ¿Cuál diría que es la forma preferida, 'setflags()' o 'flags.writeable ='? – NPE
@aix: un vistazo rápido a la documentación parecería que los dos enfoques son idénticos. Personalmente, prefiero usar un método para establecer atributos. – lafras
¿Por qué necesitas inmutabilidad? – kennytm
@KennyTM Para evitar errores de codificación causados por la modificación accidental de algo que se supone invariante. – NPE