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]])