# Numpy - Compute Variance of large array using For loop and Optimization

## NumPy: Performance Optimization Exercise-18 with Solution

Write a NumPy program that generates a large NumPy array and write a function to compute the variance of its elements using a for loop. Optimize it using NumPy's built-in functions.

**Sample Solution:**

**Python Code:**

```
import numpy as np
# Generate a large 1D NumPy array with random integers
large_array = np.random.randint(1, 1000, size=1000000)
# Function to compute variance using a for loop
def variance_with_loop(arr):
mean = np.mean(arr) # Calculate the mean of the array
variance = 0
for i in range(len(arr)):
variance += (arr[i] - mean) ** 2
variance /= len(arr) # Divide by the number of elements to get the variance
return variance
# Compute variance using the for loop method
variance_with_loop_result = variance_with_loop(large_array)
# Compute variance using NumPy's built-in var() function
variance_with_numpy = np.var(large_array)
# Display the results
print(f"Variance using for loop: {variance_with_loop_result}")
print(f"Variance using NumPy: {variance_with_numpy}")
```

Output:

Variance using for loop: 83046.09052346226 Variance using NumPy: 83046.09052346242

**Explanation:**

- Importing numpy: We first import the numpy library for array manipulations.
- Generating a large array: A large 1D NumPy array with random integers is generated.
- Defining the function: A function variance_with_loop is defined to compute the variance using a for loop.
- Calculating mean: The mean of the array is calculated.
- Computing with loop: The variance is calculated using the for loop method by summing the squared differences from the mean and dividing by the number of elements.
- Computing with numpy: The variance is calculated using NumPy's built-in var() function.
- Displaying results: The results from both methods are printed out to verify correctness.

**Python-Numpy Code Editor:**

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

**Previous:** Numpy program to count Non-Zero elements in large 2D srray using For loop and Optimization.

**Next:** Numpy - Calculate Matrix product of two large arrays using For loops and Optimization.

**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