In Python, arrays are used to store multiple values of the same data type. When working with arrays, you often need to copy data so that you can modify one array without affecting the original.
Python provides several ways to copy arrays such as assignment, copy(), slicing, and loop methods.
In this tutorial, you will learn all ways to copy arrays in Python with clear examples.
Creating an Array
We use Python’s array module.
import array as arr
numbers = arr.array('i', [10, 20, 30, 40, 50])
print(numbers)1. Copy Array Using Assignment (=)
This method does NOT create a real copy. It only creates a reference.
Example
new_array = numbers
new_array[0] = 99
print(numbers)
print(new_array)Output
array('i', [99, 20, 30, 40, 50])
array('i', [99, 20, 30, 40, 50])Explanation
- Both variables point to the same memory
- Changing one affects the other
2. Copy Array Using loop
You can manually copy elements using a loop.
Example
new_array = arr.array('i', [])
for num in numbers:
new_array.append(num)
print(new_array)Output
array('i', [10, 20, 30, 40, 50])Explanation
- Each element is copied one by one
- Safe method but slower
3. Copy Array Using slicing (List Conversion Method)
Arrays do not directly support slicing like lists, so we convert them.
Example
new_array = arr.array('i', numbers)
print(new_array)Output
array('i', [10, 20, 30, 40, 50])Explanation
- Creates a new array object
- Simple and efficient
4. Copy Array Using list() Conversion
You can convert array to list and back.
Example
new_array = arr.array('i', list(numbers))
print(new_array)Output
array('i', [10, 20, 30, 40, 50])5. Copy Array Using copy() Method (Recommended)
The copy() method creates a real independent copy.
Example
new_array = numbers.copy()
new_array[1] = 88
print(numbers)
print(new_array)Output
array('i', [10, 20, 30, 40, 50])
array('i', [10, 88, 30, 40, 50])Explanation
- Original array is not affected
- Best method for copying
6. Copy Array Using extend() Trick
You can create an empty array and extend it.
Example
new_array = arr.array('i')
new_array.extend(numbers)
print(new_array)Output
array('i', [10, 20, 30, 40, 50])Real-World Example: Student Marks Copy
import array as arr
marks = arr.array('i', [85, 90, 78, 88])
backup_marks = marks.copy()
backup_marks[0] = 100
print("Original:", marks)
print("Backup:", backup_marks)Real-World Example: Inventory Backup System
import array as arr
inventory = arr.array('i', [10, 20, 30, 40])
backup = arr.array('i', inventory)
backup.append(50)
print(inventory)
print(backup)Shallow Copy vs Independent Copy
| Method | Type | Effect |
|---|---|---|
| = | Reference | Changes affect both |
| loop | Copy | Independent |
| copy() | Copy | Independent |
| arr.array() | Copy | Independent |
Common Mistakes
Mistake 1: Using = Instead of copy()
❌ Wrong:
new_array = numbers✔ This only creates a reference
Mistake 2: Forgetting Data Type in New Array
arr.array([10, 20, 30])✔ Must include type code
Mistake 3: Modifying Original by Accident
new_array = numbers
new_array.append(100)✔ Affects original array
Array Copy Methods Summary
| Method | Description |
| = | Reference copy |
| loop | Manual copy |
| copy() | Best safe copy |
| arr.array() | Constructor copy |
| extend() | Add all items |
Practice Exercise 1
Create a copy of an array and modify the copy only.
Practice Exercise 2
Copy an array using loop method.
Conclusion
Copying arrays in Python is essential when working with data safely.
You learned:
- Difference between reference and real copy
- Multiple ways to copy arrays
- Best practice using
copy() - Real-world applications
Understanding array copying helps prevent bugs in data processing, analytics, and software development.


0 Comments