我正在寻找一种在 Python 中实现以下目标的方法,但不知道如何做到这一点:
a=[[0,1],[1,0],[1,1]]
b=[1,0,5]
c=hocuspocus(a,b)
--> c=[[0,1],[0,0],[5,5]]
所以基本上我想将 a 中的不同矩阵行与列表b相乘。
提前非常感谢!
我正在寻找一种在 Python 中实现以下目标的方法,但不知道如何做到这一点:
a=[[0,1],[1,0],[1,1]]
b=[1,0,5]
c=hocuspocus(a,b)
--> c=[[0,1],[0,0],[5,5]]
所以基本上我想将 a 中的不同矩阵行与列表b相乘。
提前非常感谢!
hocuspocus = lambda a,b: [[r*q for r in p] for p, q in zip(a,b)]
使用Numpy,它具有交叉乘法功能,以及其他有用的矩阵工具。
import * from numpy as np
a=[[0,1],[1,0],[1,1]]
b=[1,0,5]
prod = a * b
Python 列表不直接支持该行为,但Numpy数组直接进行矩阵乘法(以及您可能想要的各种其他矩阵运算):
>>> a
array([[0, 1, 1],
[1, 0, 1]])
>>> b
array([1, 0, 5])
>>> a * b
array([[0, 0, 5],
[1, 0, 5]])