Compute Dot Product using np.dot and custom ufunc in NumPy
NumPy: Universal Functions Exercise-12 with Solution
Vectorized Operations with ufuncs:
Write a NumPy program that creates two 1D arrays and uses np.dot to compute the dot product. Verify the result using a custom ufunc.
Sample Solution:
Python Code:
import numpy as np
# Create two 1D NumPy arrays
array_1 = np.array([1, 2, 3])
array_2 = np.array([4, 5, 6])
# Compute the dot product using np.dot
dot_product = np.dot(array_1, array_2)
# Define a custom ufunc to compute the dot product
def custom_dot(x, y):
return np.sum(np.multiply(x, y))
# Create a ufunc from the custom function using np.frompyfunc
custom_dot_ufunc = np.frompyfunc(custom_dot, 2, 1)
# Verify the dot product using the custom ufunc
verified_dot_product = custom_dot_ufunc(array_1, array_2)
# Print the original arrays, the np.dot result, and the verified result
print('Array 1:', array_1)
print('Array 2:', array_2)
print('Dot product using np.dot:', dot_product)
print('Dot product using custom ufunc:', verified_dot_product)
Output:
Array 1: [1 2 3] Array 2: [4 5 6] Dot product using np.dot: 32 Dot product using custom ufunc: [4 10 18]
Explanation:
- Import Libraries:
- Imported numpy as "np" for array creation and manipulation.
- Create Two 1D NumPy Arrays:
- Created two 1D NumPy arrays named ‘array_1’ with values [1, 2, 3] and array_2 with values [4, 5, 6].
- Compute Dot Product with np.dot:
- Used the np.dot function to compute the dot product of 'array_1' and 'array_2'.
- Define Custom Function:
- Define a custom function custom_dot that takes two inputs x and y, computes their element-wise multiplication, and returns the sum of the results.
- Create ufunc from Custom Function:
- Create a ufunc from the custom function using "np.frompyfunc". The function takes the custom function, the number of input arguments (2), and the number of output arguments (1).
- Verify Dot Product with Custom ufunc:
- Used the custom ufunc ‘custom_dot_ufunc’ to verify the dot product of 'array_1' and 'array_2'.
- Finally print the original arrays, the result from np.dot, and the verified result from the custom ufunc.
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