You need to create the copy of the object. You may do it using numpy.copy() since you are having numpy object. Hence, your initialisation should be like:
imageEdited_3d = imageOriginal_3d.copy()
Also there is copy module for creating the deep copy OR, shallow copy. This works independent of object type. For example, your code using copy should be as:
from copy import copy, deepcopy
# Creates shallow copy of object
imageEdited_3d = copy(imageOriginal_3d)
# Creates deep copy of object
imageEdited_3d = deepcopy(imageOriginal_3d)
Description:
Answer from Moinuddin Quadri on Stack OverflowA shallow copy constructs a new compound object and then (to the extent possible) inserts references into it to the objects found in the original.
A deep copy constructs a new compound object and then, recursively, inserts copies into it of the objects found in the original.
NumPy
numpy.org โบ doc โบ stable โบ reference โบ generated โบ numpy.copy.html
numpy.copy โ NumPy v2.5 Manual
(Note that this function and ndarray.copy are very similar, but have different default values for their order= arguments.) ... If True, then sub-classes will be passed-through, otherwise the returned array will be forced to be a base-class array (defaults to False).
08:15
Python NumPy Tutorial For Beginners - NumPy Array Copy vs View ...
06:35
Numpy Array Copy Vs View - Numpy For Machine Learning 4 - YouTube
05:49
Numpy Copy and View | View vs Copy in Numpy | Numpy Tutorial for ...
08:16
NumPy Array Copy vs View | Copy and View in NumPy Array - YouTube
NumPy
numpy.org โบ doc โบ stable โบ user โบ basics.copies.html
Copies and views โ NumPy v2.5 Manual
When a new array is created by duplicating the data buffer as well as the metadata, it is called a copy. Changes made to the copy do not reflect on the original array. Making a copy is slower and memory-consuming but sometimes necessary. A copy can be forced by using ndarray.copy.
GeeksforGeeks
geeksforgeeks.org โบ how-to-copy-numpy-array-into-another-array
How to Copy NumPy array into another array? - GeeksforGeeks
January 10, 2024 - Many times there is a need to copy one array to another. Numpy provides the facility to copy array using different methods. In this Copy NumPy Array into Another ArrayThere are various ways to copies created in NumPy arrays in Python, here we are discussing some generally used methods for copies cre
GeeksforGeeks
geeksforgeeks.org โบ python โบ numpy-copy-and-view
NumPy Copy and View of Array - GeeksforGeeks
January 14, 2026 - Explanation: A NumPy array arr is created and a view v is made using .view(). Though they have different IDs, they share the same data, so changes in arr (like arr[0] = 12) also appear in v. A copy creates a new, independent array with its own memory. Any change to the copied array wonโt affect the original one, and vice versa. This is useful when you want to modify data safely without touching the original.
NumPy
numpy.org โบ doc โบ 2.2 โบ reference โบ generated โบ numpy.ndarray.copy.html
numpy.ndarray.copy โ NumPy v2.2 Manual
>>> import copy >>> a = np.array([1, 'm', [2, 3, 4]], dtype=object) >>> c = copy.deepcopy(a) >>> c[2][0] = 10 >>> c array([1, 'm', list([10, 3, 4])], dtype=object) >>> a array([1, 'm', list([2, 3, 4])], dtype=object)
NumPy
numpy.org โบ doc โบ 2.1 โบ reference โบ generated โบ numpy.copy.html
numpy.copy โ NumPy v2.1 Manual
(Note that this function and ndarray.copy are very similar, but have different default values for their order= arguments.) ... If True, then sub-classes will be passed-through, otherwise the returned array will be forced to be a base-class array (defaults to False).
NumPy
numpy.org โบ doc โบ 2.2 โบ reference โบ generated โบ numpy.copy.html
numpy.copy โ NumPy v2.2 Manual
(Note that this function and ndarray.copy are very similar, but have different default values for their order= arguments.) ... If True, then sub-classes will be passed-through, otherwise the returned array will be forced to be a base-class array (defaults to False).
NumPy
numpy.org โบ devdocs โบ reference โบ generated โบ numpy.copy.html
numpy.copy โ NumPy v2.6.dev0 Manual
(Note that this function and ndarray.copy are very similar, but have different default values for their order= arguments.) ... If True, then sub-classes will be passed-through, otherwise the returned array will be forced to be a base-class array (defaults to False).
Sciinstitute
sciinstitute.github.io โบ ShapeWorks โบ 6.3 โบ notebooks โบ array-passing-without-copying.html
Array passing without copying - ShapeWorks
darrimg = sw.Image(np.array(darr, dtype=np.float32)) # Makes a copy of the array when passsed darrimg
Readthedocs
ecco-v4-python-tutorial.readthedocs.io โบ ECCO_v4_Operating_on_Numpy_Arrays.html
Operating on Numpy arrays โ ECCO Version 4 Python Tutorial 4.4.1 documentation
Operating on the right hand side of the assignment does indeed new arrays in memory leaving the original SSH numpy array untouched. A second way to have a new variable assignment not point to the original variable is to use the copy or deepcopy command.
GeeksforGeeks
geeksforgeeks.org โบ array-copying-in-python
Array Copying in Python - GeeksforGeeks
April 30, 2025 - In Python, there are several ways to copy arrays, each with different behaviors. The three main methods for copying arrays are: Simply using the assignment operator. ... We can create a copy of an array by using the assignment operator (=). ...
NumPy
numpy.org โบ devdocs โบ reference โบ generated โบ numpy.ndarray.copy.html
numpy.ndarray.copy โ NumPy v2.6.dev0 Manual
>>> import copy >>> a = np.array([1, 'm', [2, 3, 4]], dtype=np.object_) >>> c = copy.deepcopy(a) >>> c[2][0] = 10 >>> c array([1, 'm', list([10, 3, 4])], dtype=object) >>> a array([1, 'm', list([2, 3, 4])], dtype=object)
NumPy
numpy.org โบ doc โบ 1.18 โบ reference โบ generated โบ numpy.copy.html
numpy.copy โ NumPy v1.18 Manual
May 24, 2020 - Return an array copy of the given object.
NumPy
numpy.org โบ doc โบ 2.1 โบ reference โบ generated โบ numpy.ndarray.copy.html
numpy.ndarray.copy โ NumPy v2.1 Manual
>>> import copy >>> a = np.array([1, 'm', [2, 3, 4]], dtype=object) >>> c = copy.deepcopy(a) >>> c[2][0] = 10 >>> c array([1, 'm', list([10, 3, 4])], dtype=object) >>> a array([1, 'm', list([2, 3, 4])], dtype=object)
NumPy
numpy.org โบ doc โบ 2.0 โบ user โบ basics.copies.html
Copies and views โ NumPy v2.0 Manual
When a new array is created by duplicating the data buffer as well as the metadata, it is called a copy. Changes made to the copy do not reflect on the original array. Making a copy is slower and memory-consuming but sometimes necessary. A copy can be forced by using ndarray.copy.