Python Program to Duplicate or Copy Numpy Array

Python Numpy – Duplicate or Copy Array

You can copy a numpy array into another. Copying array means, a new instance is created, and the contents of the original array is copied into this array.

To copy array data to another using Python Numpy library, you can use numpy.ndarray.copy() function.

Syntax – copy()

Following is the syntax to make a copy of a numpy array into another array.

array2 = array1.copy()

where array1 is a numpy n-dimensional array. array1.copy() returns a new array but with the exact element values as that of array1.

Example 1: Copy Array using Numpy

In the following example, we will copy the elements of an array a to another array b.

Python Program

import numpy as np

# create a numpy array
a = np.array([[8, 2, 3],
              [4, 7, 6]])

# copy contents of a to b
b = a.copy()

# modify a
a[1, 2] = 13

# check if b has remained the same
print('a\n',a)
print('\nb\n',b)
Run

Output

a
 [[ 8  2  3]
 [ 4  7 13]]

b
 [[8 2 3]
 [4 7 6]]

Even if we have changed the contents of a, the contents of b are unaffected.

Example 2: What happens if we use assignment operator to copy array

This is a negative scenario. This example explains why you should use copy() function instead of assignment operator when you have to create a duplicate of an array.

Python Program

import numpy as np

# create a numpy array
a = np.array([[8, 2, 3],
              [4, 7, 6]])

# assign a to b
b = a

# modify a
a[1, 2] = 13

# check if b has remained the same
print('a\n',a)
print('\nb\n',b)
Run

Output

a
 [[ 8  2  3]
 [ 4  7 13]]

b
 [[ 8  2  3]
 [ 4  7 13]]

b acts as a mere reference to a. And when you change a, then b also gets changed. Hence, using assignment operator is not a way to duplicate or copy a numpy array.

Summary

In this Numpy Tutorial of Python Examples, we learned how to copy a numpy array from one variable to another.