How to make a NumPy array read-only?
Let's discuss how to make NumPy array immutable i.e that can not be rewritten or can't be changed. This can be done by setting a writable flag of the NumPy array to false.
Syntax:
array.flags.writable=False
This set the writable flag to false and hence array becomes immutable i.e read-only. See the example below
Example:
import numpy as np
a = np.zeros(11)
print("Before any change ")
print(a)
a[1] = 2
print("Before after first change ")
print(a)
a.setflags(write=False)
print("After making array immutable on attempting second change ")
a[1] = 7
Output:
Before any change
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
Before after first change
[0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
After making array immutable on attempting second change
Traceback (most recent call last):
File "gfg9.py", line 11, in <module>
a[1]=7
ValueError: assignment destination is read-only