Python 矩阵乘法变体

标签 python matrix

刚刚问了一个关于矩阵乘法的问题,可以找到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/

相关文章:

python - 使用 NumPy 将向量保存到 Python 文件中

python - 负面实例的机器学习问题

c - 如何在 C 中使用动态矩阵

c++ - 运算符 + 在稀疏矩阵 : I don't find any bug

javascript - 是否有js插件将矩阵参数转换为css3转换属性?

c++ - 在 C++ 中表示二维数组的最佳方法,其大小在运行时确定

c++ - 从另一个子 vector 或子矩阵创建 boost::numeric::ublas vector

python - 在自定义 Dask 图中包含关键字参数(kwargs)

Python 3 C扩展导入时出现段错误

python - 将高级 Python 解码为更简单的代码