🐍 NumPy – Array From Existing Data
In NumPy, you don’t always create arrays from scratch.
Often, you work with existing data and build new arrays from it.
NumPy provides powerful tools to:
- Copy arrays
- Create views
- Slice data
- Reuse memory efficiently
- Transform existing datasets
These techniques are essential in data science and machine learning using Python.
What Does “Array From Existing Data” Mean?
It means creating a new array based on already existing NumPy arrays or Python data structures.
Instead of creating new values, you reuse or transform existing data.
🟢 1. Creating Arrays from Python Lists
import numpy as np
list_data = [1, 2, 3, 4]
arr = np.array(list_data)
print(arr)
🟢 2. Copy vs View (Important Concept)
Copy
A copy creates a completely new array.
arr = np.array([1, 2, 3])
copy_arr = arr.copy()
copy_arr[0] = 99
print(arr)
print(copy_arr)
Output:
[1 2 3]
[99 2 3]
✔ Original array is unchanged.
View
A view shares the same memory.
arr = np.array([1, 2, 3])
view_arr = arr.view()
view_arr[0] = 99
print(arr)
Output:
[99 2 3]
✔ Both arrays are linked.
🟡 3. Slicing Existing Arrays
Slicing creates a view of the original array.
arr = np.array([10, 20, 30, 40, 50])
new_arr = arr[1:4]
print(new_arr)
🟡 4. Reshaping Existing Data
arr = np.arange(6)
new_arr = arr.reshape(2, 3)
print(new_arr)
🟡 5. Flattening Existing Arrays
arr = np.array([[1, 2], [3, 4]])
flat = arr.flatten()
print(flat)
🔵 6. Joining Existing Arrays
Concatenate
a = np.array([1, 2])
b = np.array([3, 4])
print(np.concatenate((a, b)))
Stack Arrays
print(np.vstack((a, b)))
print(np.hstack((a, b)))
🔵 7. Splitting Existing Arrays
arr = np.array([1, 2, 3, 4, 5, 6])
parts = np.array_split(arr, 3)
print(parts)
🟣 8. Extracting Data from 2D Arrays
arr = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(arr[0])
print(arr[:, 1])
🟣 9. Boolean Filtering from Existing Data
arr = np.array([10, 20, 30, 40, 50])
filtered = arr[arr > 25]
print(filtered)
Output:
[30 40 50]
🧠 Copy vs View Summary
| Feature | Copy | View |
|---|---|---|
| Memory | Separate | Shared |
| Performance | Slower | Faster |
| Changes affect original | No | Yes |
| Use case | Safe editing | Efficient processing |
⚡ Why This Concept is Important
1. Memory Efficiency
Views reduce memory usage.
2. Faster Computation
Avoid unnecessary duplication.
3. Data Processing
Used in filtering and preprocessing.
4. Machine Learning
Efficient dataset handling.
📊 Real-World Example
Dataset Processing
import numpy as np
data = np.array([100, 200, 300, 400, 500])
train_data = data[:3]
print(train_data)
Used in:
- Training datasets
- Validation sets
- Data slicing
🚀 Best Practices
-
Use
.copy()when you need safe data modification -
Use
.view()for performance optimization - Use slicing for quick data extraction
- Avoid unnecessary copies in large datasets
- Always understand memory behavior
🧾 Summary
NumPy allows you to create arrays from existing data efficiently using:
- Copy
- View
- Slicing
- Reshaping
- Joining
- Splitting
- Filtering
These techniques are essential for handling large datasets in Python.
🏁 Conclusion
Working with arrays from existing data is a powerful feature of NumPy.
It improves performance, reduces memory usage, and simplifies data manipulation.
Mastering these concepts is essential for data science, machine learning, and real-world Python applications.


0 Comments