Optimizing row-wise Mean calculation of large NumPy arrays
NumPy: Performance Optimization Exercise-4 with Solution
Write a NumPy program to create a large 2D NumPy array and write a function to calculate the row-wise mean using a for loop. Optimize it using vectorized operations.
Sample Solution:
Python Code:
import numpy as np
# Create a large 2D NumPy array with shape (10000, 100)
large_array = np.random.rand(10000, 100)
# Function to calculate the row-wise mean using a for loop
def row_wise_mean_using_loop(array):
row_means = np.zeros(array.shape[0])
for i in range(array.shape[0]):
row_means[i] = np.mean(array[i, :])
return row_means
# Calculate the row-wise mean using the for loop
mean_loop = row_wise_mean_using_loop(large_array)
print("Row-wise mean using for loop (first 10 rows):", mean_loop[:10])
# Optimize the row-wise mean calculation using vectorized operations
mean_vectorized = np.mean(large_array, axis=1)
print("Row-wise mean using vectorized operations (first 10 rows):", mean_vectorized[:10])
Output:
Row-wise mean using for loop (first 10 rows): [0.49248002 0.53484555 0.50524083 0.53057524 0.48671578 0.44682543 0.52395333 0.56720315 0.5154937 0.54655315] Row-wise mean using vectorized operations (first 10 rows): [0.49248002 0.53484555 0.50524083 0.53057524 0.48671578 0.44682543 0.52395333 0.56720315 0.5154937 0.54655315]
Explanation:
- Create a large 2D array: A 2D NumPy array with shape (10000, 100) is created using np.random.rand().
- Function with for loop: A function row_wise_mean_using_loop calculates the row-wise mean of the array elements using a for loop.
- Calculate mean with for loop: The row-wise mean is calculated using the for loop, and the first 10 row means are printed.
- Optimize with vectorization: The row-wise mean calculation is optimized using NumPy's vectorized np.mean() function along the rows (axis=1), and the first 10 row means are printed.
Python-Numpy Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Optimizing Dot product calculation of large NumPy arrays.
Next: Optimizing Standard Deviation calculation of large NumPy arrays.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/python-exercises/numpy/optimizing-row-wise-mean-calculation-of-large-numpy-arrays.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics