﻿ Numpy - Normalize large array using For loop and Vectorized operations

# Numpy - Normalize large array using For loop and Vectorized operations

## NumPy: Performance Optimization Exercise-13 with Solution

Write a function to normalize a large NumPy array by subtracting the mean and dividing by the standard deviation using a for loop. Optimize it using vectorized operations.

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 normalize the array using a for loop
def normalize_with_loop(arr):
mean = np.mean(arr)
std = np.std(arr)
normalized_array = np.empty_like(arr, dtype=float)
for i in range(len(arr)):
normalized_array[i] = (arr[i] - mean) / std
return normalized_array

# Normalize the array using the for loop method
normalized_with_loop = normalize_with_loop(large_array)

# Normalize the array using NumPy's vectorized operations
normalized_with_numpy = (large_array - np.mean(large_array)) / np.std(large_array)

# Display first 10 results to verify
print("First 10 normalized values using for loop:")
print(normalized_with_loop[:10])

print("First 10 normalized values using NumPy:")
print(normalized_with_numpy[:10])
``````

Output:

```First 10 normalized values using for loop:
[ 0.62631406  0.6887257   1.72198514 -0.07061597  0.55003316 -0.47975897
-1.64130901 -1.14895048  1.65263887  0.67485645]
First 10 normalized values using NumPy:
[ 0.62631406  0.6887257   1.72198514 -0.07061597  0.55003316 -0.47975897
-1.64130901 -1.14895048  1.65263887  0.67485645]
```

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 normalize_with_loop is defined to normalize the array using a for loop.
• Calculating mean and standard deviation: The mean and standard deviation of the array are calculated.
• Normalizing with loop: The array is normalized using the for loop method by subtracting the mean and dividing by the standard deviation.
• Normalizing with numpy: The array is normalized using NumPy's vectorized operations.
• Displaying results: The first 10 normalized values 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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿