python matlab 速度_Numpy与Matlab阵列求和速度的比较

我最近用Numpy将一个MATLAB脚本转换成Python,发现它运行速度明显较慢。我期望有类似的表现,所以我想知道我是否做错了什么。在

作为简单的例子,我手动求和一个几何级数:

MATLAB版本:function s = array_sum(a, array_size, iterations)

s = zeros(array_size);

for m = 1:iterations

s = a + 0.5*s;

end

end

% benchmark code

array_size = 500

iterations = 500

a = randn(array_size)

f = @() array_sum(a, array_size, iterations);

fprintf('run time: %.2f ms\n', timeit(f)*1e3);

Python/Numpy版本:

^{pr2}$

在我的机器上,MATLAB在58毫秒内完成,Python版本在292毫秒内运行,或者慢5倍。在

我还尝试通过添加Numba JIT decorator@jit('f8[:,:](i8, i8)', nopython=True)来加快Python代码的速度,但时间只下降到236毫秒(慢了4倍)。在

这比我预料的要慢。我使用时间不恰当吗?我的Python代码有问题吗?在

编辑:进行编辑,以便在基准功能之外创建随机矩阵。在

编辑2:我使用Torch而不是Numpy运行基准测试(计算总和为s = torch.add(s, 0.5, a)),它在我的计算机上只运行了52毫秒!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值