小编Geo*_*e C的帖子

为什么一个代码(matmul)比另一个(Python)快

该问题涉及基本矩阵运算。在下面的代码中,c1 本质上等于 c2。然而,第一种计算方式比第二种方式快得多。事实上,一开始我以为第一种方式需要分配比a矩阵大两倍的ab矩阵,因此可能会更慢。结果恰恰相反。为什么?

import time
import numpy as np
a = np.random.rand(20000,100)+np.random.rand(20000,100)*1j

tic = time.time()
b = np.vstack((a.real,a.imag))
c1 = b.T @ b
t1 = time.time()-tic

tic = time.time()
c2 = a.real.T @ a.real+a.imag.T@a.imag
t2 = time.time()-tic

print('t1=%f. t2=%f.'%(t1,t2))
Run Code Online (Sandbox Code Playgroud)

一个示例结果是

t1=0.037965. t2=4.375873.
Run Code Online (Sandbox Code Playgroud)

python numpy

5
推荐指数
1
解决办法
136
查看次数

标签 统计

numpy ×1

python ×1