python 中arange函数_python – 内置范围或numpy.arange:哪个更有效...

对于大型阵列,numpy应该是更快的解决方案.

在numpy中你应该使用矢量化计算的组合,ufuncs和indexing来解决你在C速度下运行的问题.

与此相比,在numpy数组上循环效率低下.

(你可以做的最糟糕的事情就是用你的问题中的第一句话建议使用范围或np.arange创建的索引来迭代数组,但我不确定你是否真的这么说.)

import numpy as np

import sys

sys.version

# out: '2.7.3rc2 (default, Mar 22 2012, 04:35:15)

[GCC 4.6.3]'

np.version.version

# out: '1.6.2'

size = int(1E6)

%timeit for x in range(size): x ** 2

# out: 10 loops, best of 3: 136 ms per loop

%timeit for x in xrange(size): x ** 2

# out: 10 loops, best of 3: 88.9 ms per loop

# avoid this

%timeit for x in np.arange(size): x ** 2

#out: 1 loops, best of 3: 1.16 s per loop

# use this

%timeit np.arange(size) ** 2

#out: 100 loops, best of 3: 19.5 ms per loop

因此,对于这种情况,numpy比使用xrange快4倍.根据您的问题,numpy可以比加速4或5倍快得多.

this question的答案解释了为大型数据集使用numpy数组而不是python列表的一些优点.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值