Numpy inner() method function returns the inner product of vectors for 1D arrays. For higher dimensions, it returns the sum-product over the last axes.
np.inner
The np.inner() is a numpy library method used to compute the inner product of two given input arrays. In the case of 1D arrays, the ordinary inner product of vectors is returned (without complex conjugation), whereas, in the case of higher dimensions, a sum-product over the last axes is returned as a result.
Syntax
numpy.inner(arr1, arr2)
Parameters
The inner() function takes at most two parameters:
arr1: array_like, the first input array
arr2: array_like, the second input array
if arr1 and arr2 are non–scalars, their last dimensions must match.
Return Value
out: ndarray
The method returns an n-dimensional array containing the inner product of two arrays arr1 and arr2. The shape of the output array can be calculated using the equation given as:
out.shape = arr1.shape[:-1] + arr2.shape[:-1]
Raises: ValueError
A ValueError is raised if the last dimension of arr1 and arr2 do not match.
Programming Example
Program to show the working of numpy.inner() method in case of 1D array/vectors
# importing the numpy module import numpy as np # first 1-D array arr1 arr1 = np.array([2, 4, 6, 8]) # second 1-D array arr2 arr2 = np.array([1, 3, 5, 7]) # calculating inner product res = np.inner(arr1, arr2) print("Resultant array is : ", res) # first 1-D array arr1 arr3 = np.array([8+2j]) # second 1-D array arr2 arr4 = np.array([1+6j]) # calculating inner product' out = np.inner(arr3, arr4) print("Output array is : ", out)
Output
Resultant array is : 100 Output array is : (-4+50j)
Explanation
In the above code, we have taken two one-dimensional input arrays named arr1 and arr2; we have displayed output by displaying the inner product of both the arrays. The result we get is a scalar, i.e., 100.
The calculation may be shown as:
2*1 + 4*3 + 6*5 + 8*7 = 100
Also, to display calculation in the case of complex numbers, we took another two vectors named arr3 and arr4 and then calculated its inner product. The result obtained is given as -4+50j. Result calculation can be shown as:
8*1 + 8*6j + 2j*1 + 2j*6j
= 8 + 48j + 2j -12
= -4 + 50j
Program to show the working of numpy.inner() method in case of a multi-dimensional array
# importing the numpy module import numpy as np # first 2D array arr1 arr1 = np.array([[3, 2], [0, 4]]) print("first array is :") print(arr1) # second 2D array arr1 arr2 = np.array([[1, 2], [3, 4]]) print("second array is :") print(arr2) # calculating inner product res = np.inner(arr1, arr2) print("Resultant array is :") print(res)
Output
first array is : [[3 2] [0 4]] second array is : [[1 2] [3 4]] Resultant array is : [[ 7 17] [ 8 16]]
Explanation
In the above program, we have taken two different two-dimensional arrays named arr1 and another named arr2. Then we have displayed output by displaying the inner product of both the arrays. The resultant array will also have the shape of (2,2).
The inner product for above example can be calculated as:
3*1 + 2*2, 3*3 + 2*4
0*1 + 4*2, 0*3 + 4*4
That’s it for this Numpy.inner() function.