En Python, podemos usar la función einsum() del paquete NumPy para calcular la convención de suma de Einstein de dos arrays multidimensionales dadas.
Sintaxis: numpy.einsum(subíndices, *operandos, out=Ninguno)
Parámetros:
subíndices: str
Especifica los subíndices para la suma como una lista separada por comas de etiquetas de subíndices. Se realiza un cálculo implícito (suma clásica de Einstein) a menos que se incluya el indicador explícito ‘->’, así como las etiquetas de subíndice del formulario de salida preciso.
operandos: lista de array_like
Estas son las arrays para la operación.
fuera: ndarray, opcional
Si se proporciona, el cálculo se realiza en esta array.
Devoluciones: El cálculo basado en la convención de suma de Einstein.
Ejemplo 1: convención de suma de Einstein de dos arrays 2X2
Python3
# Importing library import numpy as np # Creating two 2X2 matrix matrix1 = np.array([[1, 2], [0, 2]]) matrix2 = np.array([[0, 1], [3, 4]]) print("Original matrix:") print(matrix1) print(matrix2) # Output result = np.einsum("mk,kn", matrix1, matrix2) print("Einstein’s summation convention of the two matrix:") print(result)
Producción:
Original matrix: [[1 2] [0 2]] [[0 1] [3 4]] Einstein’s summation convention of the two matrix: [[6 9] [6 8]]
Ejemplo 2: convención de suma de Einstein de dos arrays 3X3
Python3
# Importing library import numpy as np # Creating two 3X3 matrix 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) # Output result = np.einsum("mk,kn", matrix1, matrix2) print("Einstein’s summation convention of the two matrix:") print(result)
Producción:
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]]
Ejemplo 3: Convención de suma de Einstein de dos arrays 4X4
Python3
# Importing library import numpy as np # Creating two 4X4 matrix 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) # Output result = np.einsum("mk,kn", matrix1, matrix2) print("Einstein’s summation convention of the two matrix:") print(result)
Producción:
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]]
Publicación traducida automáticamente
Artículo escrito por geekmonkey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA