刚刚问了一个关于矩阵乘法的问题,可以找到here ,我还有一个关于矩阵乘法的问题。假设我有以下矩阵:
matrix_a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix_b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
我怎样才能得到这样的结果:
[[1, 4, 9], [16, 25, 36], [49, 64, 81]]
...这样每个元素基本上都与另一个数组的单个对应元素相乘。有谁知道该怎么做吗?
谢谢大家!
最佳答案
您可以使用 list comprehensions 表示逐元素乘积(和矩阵乘积) , zip ,以及 *
argument-unpacking operator :
matrix_a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix_b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
elementwise_product = [[ai*bi for ai, bi in zip(*rows)]
for rows in zip(matrix_a, matrix_b)]
print(elementwise_product)
# [[1, 4, 9], [16, 25, 36], [49, 64, 81]]
matrix_product = [[sum([ai*bi for ai, bi in zip(row_a, col_b)])
for col_b in zip(*matrix_b)]
for row_a in matrix_a]
print(matrix_product)
# [[30, 36, 42], [66, 81, 96], [102, 126, 150]]
关于Python 矩阵乘法变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37233118/