gpt4 book ai didi

python - 如何提高大型数据集中的 Python 计算速度?

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

我有一个很大的数据集,它包含与真实网站中的照片对应的标签(500 000条记录,每条记录至少包含一个标签)

例子:

标签1

标签1 标签2 标签3

tag1 tag12 tag99

以此类推,50万次

我尝试根据数据集中每个标签的出现次数来计算标签的权重。对于 500 行,代码运行良好(0.1 秒),但对于整个数据,它需要数小时和数小时(超过 8),即使对于 PyPy

我假设我做错了什么并且使用 Python 效率低下。这是计算权重的代码:

for i, photo in enumerate(data):
for j, tag in enumerate(photo):
if (tag not in tag_set):
tag_set.append(tag)
tag_w.append(log(len(data)) - log(sum(x.count(tag) for x in data)))

我怎样才能加快速度?

谢谢!

最佳答案

x.count(tag) for x in data

这部分遍历所有数据中的所有标签。您对每个标签 执行一次。这是很多不必要的循环。使用 Counterdefaultdict(int) 对标签计数一次。如果使用 Counter 仍然很慢,defaultdict(int) 可能更快,或者甚至可能只是一个普通的 dict。我将使用 Counter:

import collections
import itertools
tag_counts = collections.Counter(itertools.chain.from_iterable(data))
tag_to_weight_dict = {tag: weight_function(count)
for tag, count in tag_counts.items()}

关于python - 如何提高大型数据集中的 Python 计算速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20465557/

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