Evaluate Einstein’s summation convention of two multidimensional NumPy arrays
Last Updated :
29 Aug, 2020
In Python, we can use the einsum() function of the NumPy package to compute Einstein’s summation convention of two given multidimensional arrays.
Syntax: numpy.einsum(subscripts, *operands, out=None)
Parameters:
subscripts : str
Specifies the subscripts for summation as comma separated list of subscript labels. An implicit (classical Einstein summation) calculation is performed unless the explicit indicator ‘->’ is included as well as subscript labels of the precise output form.
operands : list of array_like
These are the arrays for the operation.
out : ndarray, optional
If provided, the calculation is done into this array.
Returns: The calculation based on the Einstein summation convention.
Example 1: Einstein’s summation convention of two 2X2 matrices
Python3
import numpy as np
matrix1 = np.array([[ 1 , 2 ], [ 0 , 2 ]])
matrix2 = np.array([[ 0 , 1 ], [ 3 , 4 ]])
print ( "Original matrix:" )
print (matrix1)
print (matrix2)
result = np.einsum( "mk,kn" , matrix1, matrix2)
print ( "Einstein’s summation convention of the two matrix:" )
print (result)
|
Output:
Original matrix:
[[1 2]
[0 2]]
[[0 1]
[3 4]]
Einstein’s summation convention of the two matrix:
[[6 9]
[6 8]]
Example 2: Einstein’s summation convention of two 3X3 matrices
Python3
import numpy as np
matrix1 = np.array([[ 2 , 3 , 5 ], [ 4 , 0 , 2 ], [ 0 , 6 , 8 ]])
matrix2 = np.array([[ 0 , 1 , 5 ], [ 3 , 4 , 4 ], [ 8 , 3 , 0 ]])
print ( "Original matrix:" )
print (matrix1)
print (matrix2)
result = np.einsum( "mk,kn" , matrix1, matrix2)
print ( "Einstein’s summation convention of the two matrix:" )
print (result)
|
Output:
Original matrix:
[[2 3 5]
[4 0 2]
[0 6 8]]
[[0 1 5]
[3 4 4]
[8 3 0]]
Einstein’s summation convention of the two matrix:
[[49 29 22]
[16 10 20]
[82 48 24]]
Example 3: Einstein’s summation convention of two 4X4 matrices
Python3
import numpy as np
matrix1 = np.array([[ 1 , 2 , 3 , 5 ], [ 4 , 4 , 0 , 2 ],
[ 0 , 1 , 6 , 8 ], [ 0 , 5 , 6 , 9 ]])
matrix2 = np.array([[ 0 , 1 , 9 , 2 ], [ 3 , 3 , 4 , 4 ],
[ 1 , 8 , 3 , 0 ], [ 5 , 2 , 1 , 6 ]])
print ( "Original matrix:" )
print (matrix1)
print (matrix2)
result = np.einsum( "mk,kn" , matrix1, matrix2)
print ( "Einstein’s summation convention of the two matrix:" )
print (result)
|
Output:
Original matrix:
[[1 2 3 5]
[4 4 0 2]
[0 1 6 8]
[0 5 6 9]]
[[0 1 9 2]
[3 3 4 4]
[1 8 3 0]
[5 2 1 6]]
Einstein’s summation convention of the two matrix:
[[34 41 31 40]
[22 20 54 36]
[49 67 30 52]
[66 81 47 74]]
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...