在python中乘以数组

时间:2016-09-11 01:51:35

标签: python numpy matrix

我已经使用numpy库对python中的乘法矩阵进行了一些测试。

array1 = np.random.rand(100,100,100,100)
array2 = np.random.rand(100,100,100,100)

array_new1 = np.reshape(array1, (100*100, 100*100))
array_new2 = np.reshape(array2, (100*100, 100*100))

time1 = time.time()
product = array1 * array2
time2 = time.time()
time_tot1 = time2 - time1

time3 = time.time()
product2 = array_new1 * array_new2
time4 = time.time()
time_tot2 = time2 - time1

time5 = time.time()
prod_einsm = np.einsum('abcd, abcd->abcd', array1, array2)
time6 = time.time()
time_tot3 = time6 - time5

time7 = time.time()
prod_einsum2 = np.einsum('ab, ab-> ab', array_new1, array_new2)
time8 = time.time()
time_tot4 = time8 - time7

print time_tot1, time_tot2, time_tot3, time_tot4

在我的真实代码中,我正在处理更高维度,并想知道如何提高性能。毫无疑问,einsum经过优化并且工作速度非常快。我也注意到使用2维矩阵的有益效果4.还有什么我可以做的吗?也许我应该考虑并行编程? 有什么想法和提示吗?

0 个答案:

没有答案