Programa Python para multiplicar matrices usando matrices multidimensionales
Una matriz es un conjunto de números ordenados en filas y columnas. Una matriz con m filas y n columnas se llama matriz m X n y myn se llaman dimensiones. Una matriz es una matriz bidimensional, que se crea mediante listas o matrices NumPy en Python.
En general, la multiplicación de matrices se puede realizar multiplicando las filas de la primera matriz por la columna de la segunda matriz. Aquí, el número de columnas de la primera matriz debe ser igual al número de filas de la segunda matriz.
Escenarios de entrada y salida
Suponiendo que tenemos dos matrices A y B y estas dos matrices tienen dimensiones 2X3 y 3X2 respectivamente. Después de multiplicar, la matriz resultante tendrá 2 filas y 1 columna.
[b1, b2]
[a1, a2, a3] * [b3, b4] = [a1*b1+a2*b2+a3*a3]
[a4, a5, a6] [b5, b6] [a4*b2+a5*b4+a6*b6]
Además, podemos realizar la multiplicación de matrices por elementos. En este caso, el número de filas y columnas de dos matrices de entrada debe ser el mismo.
[a11, a12, a13] [b11, b12, b13] [a11*b11, a12*b12, a13*b13]
[a21, a22, a23] * [b21, b22, b23] = [a21*b21, a22*b22, a23*b23]
[a31, a32, a33] [b31, b32, b33] [a31*b31, a32*b32, a33*b33]
Usando el bucle For
Con un bucle for anidado, ejecutaremos la operación de multiplicación en dos matrices y almacenaremos el resultado en la tercera matriz.
Ejemplo
En este ejemplo, inicializaremos una matriz de resultados con todos ceros para almacenar los resultados de la multiplicación.
# Defining the matrix using multidimensional arrays
matrix_a = [[1,2,3],
[4,1,2],
[2,3,1]]
matrix_b = [[1,2,3,2],
[2,3,6,3],
[3,1,4,2]]
#function for displaying matrix
def display(matrix):
for row in matrix:
print(row)
print()
# Display two input matrices
print('The first matrix is defined as:')
display(matrix_a)
print('The second matrix is defined as:')
display(matrix_b)
# Initializing Matrix with all 0s
result = [[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]]
# multiply two matrices
for i in range(len(matrix_a)):
# iterate through rows
for j in range(len(matrix_b[0])):
# iterate through columns
for k in range(len(matrix_b)):
result[i][j] = matrix_a[i][k] * matrix_b[k][j]
print('The multiplication of two matrices is:')
display(result)
Producción
The first matrix is defined as:
[1, 2, 3]
[4, 1, 2]
[2, 3, 1]
The second matrix is defined as:
[1, 2, 3, 2]
[2, 3, 6, 3]
[3, 1, 4, 2]
The multiplication of two matrices is:
[9, 3, 12, 6]
[6, 2, 8, 4]
[3, 1, 4, 2]
El número de filas y columnas de la primera matriz (matriz_a) es 3, y el número de filas de la segunda matriz (matriz_b) es 3 y columnas es 4. Después de multiplicar estas dos matrices (matriz_a, matriz_b), la matriz resultante tendrá 3 filas y 4 columnas (es decir, 3X4).
Ejemplo
Aquí las matrices se crean usando la función numpy.array() para que podamos simplemente hacer la multiplicación de matrices usando el operador @.
import numpy as np
# Defining the matrix using numpy array
matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]])
matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]])
# Display two input matrices
print('The first matrix is defined as:')
print(matrix_a)
print('The second matrix is defined as:')
print(matrix_b)
# multiply two matrices
result = matrix_a @ matrix_b
print('The multiplication of two matrices is:')
print(result)
Producción
The first matrix is defined as:
[[1 2 5]
[1 0 6]
[9 8 0]]
The second matrix is defined as:
[[0 3 5]
[4 6 9]
[1 8 0]]
The multiplication of two matrices is:
[[ 13 55 23]
[ 6 51 5]
[ 32 75 117]]
El operador de multiplicación @ está disponible en las versiones Python 3.5+; de lo contrario, podemos usar la función numpy.dot().
Ejemplo
En este ejemplo, realizaremos una operación de multiplicación de elementos en dos matrices numerosas utilizando el operador de asterisco (*).
import numpy as np
# Defining the matrix using numpy array
matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]])
matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]])
# Display two input matrices
print('The first matrix is defined as:')
print(matrix_a)
print('The second matrix is defined as:')
print(matrix_b)
# multiply elements of two matrices
result = matrix_a * matrix_b
print('The element-wise multiplication of two matrices is:')
print(result)
Producción
The first matrix is defined as:
[[1 2 5]
[1 0 6]
[9 8 0]]
The second matrix is defined as:
[[0 3 5]
[4 6 9]
[1 8 0]]
The element-wise multiplication of two matrices is:
[[ 0 6 25]
[ 4 0 54]
[ 9 64 0]]