Open In App

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
Article Tags :