NumPy Array Copy vs View
🆚 NumPy — Copy vs View
When working with NumPy arrays, modifying data may or may not affect the original array depending on whether you’re using a copy or a view.
| Feature | Copy | View |
|---|---|---|
| Separate memory? | ✅ Yes | ❌ No |
| Changes affect original? | ❌ No | ✅ Yes |
| Faster? | ❌ Slightly slower | ✅ Faster |
| Use case | When original data must be preserved | Memory-efficient slicing & referencing |
📌 1. Copy (Creates a New Array)
A copy creates a completely independent array.
Output:
📌 2. View (Shares Data With Original)
A view does NOT create a new memory; it references the original data.
Output:
🎯 Checking the Relationship: base Attribute
You can check whether an array owns its data using the .base property.
📌 Example with 2-D Arrays
Result: Both change because vw2 is a view.
📌 Slicing Creates a View (Not Copy)
📌 To Force a Copy of a Slice
🧠 When to Use What?
| Use Case | Best Option |
|---|---|
| Working with large datasets | View (memory efficient) |
| Need independent data | Copy |
| Slicing for temporary use | View |
| Prevent accidental modification of original data | Copy |
📝 Summary
| Feature | Copy | View |
|---|---|---|
| Memory usage | More | Less |
| Speed | Slower | Faster |
| Shares data | ❌ No | ✅ Yes |
Uses .copy()? |
Yes | No (views usually created by slicing) |
