python最小的浮点数_在python lis中找到最小浮点数的最有效方法

首先,如果您关心Python中的性能(这并不总是一件值得关注的事情,但这是另一个对话),那么您应该使用timeit module。即使在C语言中,也很难预测某些函数在编译后的行为,而在Python中更难预测。人们常常自信地表达自己的观点,即哪些功能更快,哪些依赖于数据。然后——我的意思是,用时间——你就可以发现你自己了。

其次,如果您真正关心浮动列表的性能,那么您根本不应该使用列表,而应该使用numpy数组。在Python2.7.2下使用IPython,这使得计时变得简单:In [41]: import random, numpy

In [42]: a = [0.1*i for i in range(10**5)]

In [43]: timeit min(a)

100 loops, best of 3: 4.55 ms per loop

In [44]: timeit sorted(a)[0]

100 loops, best of 3: 4.57 ms per loop

In [45]: random.shuffle(a)

In [46]: timeit min(a)

100 loops, best of 3: 6.06 ms per loop

In [47]: timeit min(a) # to make sure it wasn't a fluke

100 loops, best of 3: 6.07 ms per loop

In [48]: timeit sorted(a)[0]

10 loops, best of 3: 65.9 ms per loop

In [49]: b = numpy.array(a)

In [50]: timeit b.min()

10000 loops, best of 3: 97.5 us per loop

我们注意到一些事情。(1) Python的sort(timsort)在已排序运行的数据上工作得非常好,因此对已排序的列表进行排序几乎没有任何惩罚。(2) 另一方面,对随机列表进行排序要慢得多,而且这只会随着数据的增大而变得更糟。(3) float数组中的Numpy.min()比Python列表中的min快60倍,因为它不必是一般的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值