Skip to content
pythoneo

Pythoneo

Online How to Python stuff

How to create an immutable Numpy array?

Posted on April 8, 2021August 18, 2023 By Pythoneo

Let’s check how to create an immutable Numpy array.
Numpy immutable array

Setting writeable flag

To make the array immutable, you need to set the writeable flag to false.

import numpy as np

my_array = np.array([1, 2, 3])
print(my_array)

my_array[1] = 5
print(my_array)

my_array.flags.writeable = False

my_array[2] = 6
print(my_array)

As you can see, it is not possible to change the array. Python displays assignment destination is a read-only ValueError.

Traceback (most recent call last):
  File "C:\Users\pythoneo\PycharmProjects\pythoneoProject\immutable_array_python.py", line 11, in 
    my_array[2] = 6
ValueError: assignment destination is read-only

Setting a writeable flag rendered your code immutable.To turn off read-only mode, you need to set the writeable flag back to true.

Setting write flag

Alternatively, you can set the write flag to false.

import numpy as np

my_array = np.array([1, 2, 3])
print(my_array)

my_array[1] = 5
print(my_array)

my_array.setflags(write=False)

my_array[2] = 6
print(my_array)

Python displays ValueError as well. The full error message is as follows:

Traceback (most recent call last):
  File "C:\Users\pythoneo\PycharmProjects\pythoneoProject\immutable_array_python.py", line 11, in 
    my_array[2] = 6
ValueError: assignment destination is read-only

Set the write flag back to true to allow editing.

Key Takeaways

  • There are two ways to create an immutable Numpy array:
  • By setting the writeable flag to False
  • By setting the write flag to False
  • When the writeable flag is set to False, the array cannot be modified.
  • When the write flag is set to False, the array can still be modified, but only by creating a new array.
  • FAQ

    • Q: Why would I want to create an immutable Numpy array?
    • A: There are a few reasons why you might want to create an immutable Numpy array:
      • To prevent accidental changes to the array.
      • To improve performance, as immutable arrays are often faster than mutable arrays.
      • To make the array thread-safe, as immutable arrays can be safely accessed by multiple threads without the risk of corruption.
    • Q: What is the difference between the writeable flag and the write flag?
    • The writeable flag controls whether the array can be modified. The write flag controls whether the array can be modified in-place.
    See also  How to get array from string in Numpy?
    numpy Tags:array, error, flag, immutable, read-only

    Post navigation

    Previous Post: How to add dimension to Numpy array?
    Next Post: How to generate Cauchy Matrix from arrays in Numpy?

    Categories

    • bokeh (1)
    • Django (5)
    • matplotlib (11)
    • numpy (99)
    • OpenCV (4)
    • Pandas (3)
    • paramiko (12)
    • Pillow (3)
    • Plotly (3)
    • Python (30)
    • Scipy (4)
    • Seaborn (7)
    • statistics (7)
    • Tkinter (8)
    • turtle (2)

    RSS RSS

    • OpenCV FindContours: Detecting and Analyzing Objects in Images
    • How to create a simple animation in Tkinter
    • Adaptive Thresholding with OpenCV
    • Hot to use the grid geometry manager in Tkinter
    • How to install and use paramiko for SSH connections in Python
    • How to automate file transfers with paramiko and SFTP
    • How to Execute Remote Commands with Paramiko and SSHClient
    • Handling Paramiko Errors and Timeouts
    • How to use paramiko with multiprocessing and threading
    • How to use matplotlib cmap?

    Tags

    arithmetic mean array axis button calculations chart column conversion count data type dictionary dimension draw error files fill float generate grid GUI image index integer list matrix max mean min mode multiply normal distribution plot random reshape rotate round rows size string sum test text time type zero

    Copyright © 2023 Pythoneo.

    Powered by PressBook WordPress theme

    We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
    Cookie settingsACCEPT
    Manage consent

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Always Enabled
    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
    Non-necessary
    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
    SAVE & ACCEPT
    Go to mobile version