import numpy as np
A = np.array([[1,0,0],[0,1,0],[0,0,1]])
B = np.array([[1,0,0],[0,1,0],[0,0,1]])
np.dot(A,B)
array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
np.inner(A,B)
array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
np.linalg.det(A)
1.0
A[0][1]
0
c = np.array([[0,0,0],[0,0,0],[0,0,0]])
for i in range(len(A)):
for k in range(len(B)):
val = 0
for j in range(len(A[0])):
val += A[i][j]*B[j][k]
c[i][k] = val
#print i, k, val
#
print c
[[1 0 0] [0 1 0] [0 0 1]]
def value(i,k,A,B):
val = 0
for j in range(len(A[i])):
val += A[i][j]*B[j][k]
return val
for i in range(len(A)):
for k in range(len(B)):
#print value(i,k,A,B)
c[i][k] = value(i,k,A,B)
print c
[[1 0 0] [0 1 0] [0 0 1]]
import multiprocessing as mp
import random
import string
pool = mp.Pool(processes=4)
for i in range(len(A)):
results = [pool.apply(value, args=(i,k,A,B,)) for k in range(len(B))]
print(results)
[1, 0, 0] [0, 1, 0] [0, 0, 1]
pool = mp.Pool(processes=4)
for i in range(len(A)):
results = [pool.apply_async(value, args=(i,k,A,B,)) for k in range(len(B))]
output = [p.get() for p in results]
print(output)
[1, 0, 0] [0, 1, 0] [0, 0, 1]
def prod(i,A,B):
val =0
for k in range(len(B[0])):
for j in range(len(A[0])):
val += A[i][j]*B[j][k]
return val
for i in range(len(A[0])):
print prod(i,A,B)
1 1 1