# Optimizing element-wise addition of large NumPy arrays

## NumPy: Performance Optimization Exercise-2 with Solution

Write a NumPy program that generate two large NumPy arrays and write a function to perform element-wise addition using a for loop. Optimize it with vectorized operations.

**Sample Solution:**

**Python Code:**

```
import numpy as np
# Generate two large NumPy arrays with 1 million elements each
array1 = np.random.rand(1_000_000)
array2 = np.random.rand(1_000_000)
# Function to perform element-wise addition using a for loop
def add_using_loop(arr1, arr2):
result = np.zeros_like(arr1)
for i in range(len(arr1)):
result[i] = arr1[i] + arr2[i]
return result
# Perform element-wise addition using the for loop
sum_loop = add_using_loop(array1, array2)
print("Sum using for loop (first 10 elements):", sum_loop[:10])
# Optimize the element-wise addition using vectorized operations
sum_vectorized = array1 + array2
print("Sum using vectorized operations (first 10 elements):", sum_vectorized[:10])
```

Output:

Sum using for loop (first 10 elements): [0.82969092 0.60765517 0.99252235 0.80627455 0.83265615 0.60942688 1.31452386 1.64925039 1.49971366 1.22739445] Sum using vectorized operations (first 10 elements): [0.82969092 0.60765517 0.99252235 0.80627455 0.83265615 0.60942688 1.31452386 1.64925039 1.49971366 1.22739445]

**Explanation:**

- Generate two large arrays: Two large 1D NumPy arrays, each with 1 million elements, are created using np.random.rand().
- Function with for loop: A function add_using_loop performs element-wise addition of the arrays using a for loop.
- Calculate sum with for loop: The sum of the arrays is calculated using the for loop, and the first 10 elements are printed.
- Optimize with vectorization: The element-wise addition is optimized using NumPy's vectorized operations, and the first 10 elements are printed.

**Python-Numpy Code Editor:**

**Have another way to solve this solution? Contribute your code (and comments) through Disqus.**

**Previous:** Optimizing sum calculation of a large NumPy array.

**Next:** Optimizing Dot product calculation of large NumPy arrays.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics