gpt4 book ai didi

python - 使用reduce函数减少python中的大型数据集

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:23 24 4
gpt4 key购买 nike

我在 1000000 个整数的数据集上尝试一个简单的 reduce 函数,这是我正在尝试做的,

from functools import reduce
a = (x for x in range(1,1000000))
reduce(lambda x,y: x*y,a)

问题是,它花费了很多时间!有没有更快的方法来实现这种规模的数据集?

最佳答案

这里的主要问题是你的结果的大小,这使得计算需要对数。基本上,python 可以处理您的内存允许的最大数字,这意味着它仅受您的内存限制。请注意,随着数字变大,对它们进行的所有操作的成本都会增加。据我所知,reduce() 函数是完成此任务的最 Python 方式。但是仍然因为你只想要特定数字的阶乘,你可以使用内置的 math.factorial() 函数:这比 reduce() 快得多,这是因为 python 的 math 模块函数是用 C 实现的。

In [52]: %timeit math.factorial(10000)
100 loops, best of 3: 2.67 ms per loop

In [53]: %timeit reduce(mul, range(1, 10000))
10 loops, best of 3: 20.6 ms per loop

关于python - 使用reduce函数减少python中的大型数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42553741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com