在Python中按列表乘以矩阵

时间:2012-08-07 15:32:11

标签: python multiplication

我正在寻找一种在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 列表相乘。

提前多多感谢!

3 个答案:

答案 0 :(得分:3)

hocuspocus = lambda a,b: [[r*q for r in p] for p, q in zip(a,b)]

答案 1 :(得分:3)

使用Numpy,它具有交叉乘法功能,以及其他有用的基质工具。

import * from numpy as np

a=[[0,1],[1,0],[1,1]]
b=[1,0,5]

prod = a * b

答案 2 :(得分:0)

Python列表不直接支持该行为,但Numpy数组直接执行矩阵乘法(以及您可能需要的各种其他矩阵运算):

>>> a
array([[0, 1, 1],
       [1, 0, 1]])
>>> b
array([1, 0, 5])
>>> a * b
array([[0, 0, 5],
       [1, 0, 5]])