w3resource

NumPy: Make an array immutable

NumPy: Array Object Exercise-67 with Solution

Write a NumPy program to make an array immutable (read-only).

Sample Solution:

Python Code:

# Importing the NumPy library and aliasing it as 'np'
import numpy as np

# Creating a NumPy array 'x' filled with zeros, containing 10 elements
x = np.zeros(10)

# Setting the 'writeable' flag of the array 'x' to False, making it read-only
x.flags.writeable = False

# Printing a message to test whether the array is read-only or not
print("Test the array is read-only or not:")

# Attempting to change the value of the first element in the array 'x'
print("Try to change the value of the first element:")
x[0] = 1  # This line will raise an error since the array is read-only 

Sample Output:

Test the array is read-only or not:                                    
Try to change the value of the first element:                          
Traceback (most recent call last):                                     
  File "24222080-0d5f-11e7-93ad-ebc5bbb63894.py", line 6, in   
    x[0] = 1                                                           
ValueError: assignment destination is read-only

Explanation:

In the above code –

‘x = np.zeros(10)’ creates a 1D NumPy array with 10 elements, all initialized to 0 and stores it in the variable ‘x’.

x.flags.writeable = False: This line sets the writeable flag of the x array to False, making the array read-only. This means that any attempt to modify the elements of the array will result in an error.

x[0] = 1: This line tries to set the first element of the array x to 1. However, since the array is read-only, this operation will raise a ValueError.

Python-Numpy Code Editor:

Previous: Write a NumPy program to create a vector of size 10 with values ranging from 0 to 1, both excluded.
Next: Write a NumPy program (using numpy) to sum of all the multiples of 3 or 5 below 100.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.