是否有一种简单的方法来创建不可变的NumPy数组?
如果必须从ndarray
派生一个类来执行此操作,那么为了实现不变性,必须覆盖的最小方法集是什么?
答案 0 :(得分:90)
你可以使一个numpy数组不可写:
a = np.arange(10)
a.flags.writeable = False
a[0] = 1
# Gives: RuntimeError: array is not writeable
另见本主题的讨论:
http://mail.scipy.org/pipermail/numpy-discussion/2008-December/039274.html
和文档:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flags.html