ABC189
E - Rotate and Flip
ででてきた行列の積
今後のためにも行列の積の定義をfor文で作った
※np.dotよりも処理速度速い気がする 〜pypy用〜
行列の積
test.py
def dot_nm(a,b):
n,l,m = 3,5,2
return [[sum([a[i][k]*b[k][j] for k in range(l)]) for j in range(m)] for i in range(n)]
def dot_n1(a,b):
n,l = 3,2
return [sum([a[i][j]*b[j] for j in range(l)]) for i in range(n)]
def dot_1m(a,b):
l,m = 4,2
return [sum([a[j]*b[j][i] for j in range(l)]) for i in range(m)]
print('---pypy---')
print(dot_nm([[2,1,9,5,1],[3,5,-2,-1,-9],[7,9,0,6,5]], [[4,6],[1,1],[-3,4],[3,1],[9,3]]))
print(dot_n1([[2,1],[3,5],[7,9]], [4,6]))
print(dot_1m([3,4,-7,1], [[2,1],[3,5],[9,8],[8,6]]))
print('---numpy---')
import numpy as np
print(np.dot([[2,1,9,5,1],[3,5,-2,-1,-9],[7,9,0,6,5]], [[4,6],[1,1],[-3,4],[3,1],[9,3]]))
print(np.dot([[2,1],[3,5],[7,9]], [4,6]))
print(np.dot([3,4,-7,1], [[2,1],[3,5],[9,8],[8,6]]))
おわり!!!