Matrix Multiply with Juypter
Posted on Do 07 Dezember 2017 in Juypter
In [1]:
import numpy as np
import functools
In [2]:
w1 = [1., 2., 3., 4.]
w2 = [4., 5., 6., 7.]
w3 = [3., 2., 1., 1.]
W = [w1, w2, w3]
v1 = [1., 4., 4., 6., 5.]
v2 = [1., 3., 1., 6., 2.]
v3 = [6., 3., 4., 2., 1.]
v4 = [1., 2., 4., 2., 3.]
V = [v1, v2, v3, v4]
# W = [[1., 2.],
# [3., 4.]]
#
# V = [[5., 6.],
# [7., 8.]]
In [3]:
def multiply(W, V):
# implement in native python without any libraries
V2 = list(zip(*V)) # transpose matrix
r = [[sum(x * y for x, y in zip(row, col)) for col in V2] for row in W]
return r
def test_multiply(W, V):
X = multiply(W, V)
Y = np.dot(np.array(W), np.array(V)) # numpy version
# print(X)
# print("\n")
print(Y)
np.testing.assert_allclose(X, Y, rtol=1e-05)
In [4]:
test_multiply(W, V)