NumPy: Test whether numpy array is faster than Python list or not
Compare speed of NumPy array vs Python list.
Write a Numpy program to test whether numpy array is faster than Python list or not.
Sample Solution:
Python Code:
# Importing necessary libraries
import time # Importing time module for time-related functionalities
import numpy as np # Importing NumPy library
# Defining the size of the arrays
SIZE = 200000
# Creating lists and NumPy arrays of integers from 0 to SIZE - 1
list1 = range(SIZE)
list2 = range(SIZE)
arra1 = np.arange(SIZE)
arra2 = np.arange(SIZE)
# Measuring the time taken to aggregate elements from each iterable using a list comprehension
start_list = time.time() # Marking the start time
result = [(x, y) for x, y in zip(list1, list2)] # Aggregating elements from 'list1' and 'list2' using list comprehension
print("Time to aggregate elements from each of the iterables:")
print("List:")
print((time.time() - start_list) * 1000) # Printing the execution time in milliseconds
# Measuring the time taken to add NumPy arrays element-wise
start_array = time.time() # Marking the start time
result = arra1 + arra2 # Performing element-wise addition on 'arra1' and 'arra2' using NumPy
print("NumPy array:")
print((time.time() - start_array) * 1000) # Printing the execution time in milliseconds
Sample Output:
Time to aggregates elements from each of the iterables: List: 72.64399528503418 NumPy array: 19.61684226989746
Explanation:
In the above code -
- SIZE: A constant integer variable with the value of 200000, representing the size of the lists and arrays.
- list1 and list2: Two Python lists created using the range function, each containing integers from 0 to SIZE-1.
- arra1 and arra2: Two NumPy arrays created using the np.arange function, each containing integers from 0 to SIZE-1.
- start_list: Records the current time before the list element-wise addition starts.
- result: A list comprehension with zip is used to add list1 and list2 element-wise. It creates a list of tuples containing the sum of corresponding elements from list1 and list2.
- print((time.time()-start_list)*1000): This line calculates the time taken for the list addition operation in milliseconds and prints it.
- start_array: Records the current time before the NumPy array element-wise addition starts.
- result = arra1 + arra2: This line adds the two NumPy arrays arra1 and arra2 element-wise directly.
- print((time.time()-start_array)*1000): Calculates the time taken for the NumPy array addition operation in milliseconds and prints it.
Python-Numpy Code Editor:
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