gpt4 book ai didi

python - 在 Python 中读取输入的最快方法

转载 作者:太空狗 更新时间:2023-10-29 17:53:42 26 4
gpt4 key购买 nike

我想读取一个包含整数列表的巨大文本文件。现在我正在做以下事情:

G = []
with open("test.txt", 'r') as f:
for line in f:
G.append(list(map(int,line.split())))

但是,它需要大约 17 秒(通过 timeit)。有什么办法可以减少这个时间吗?也许,有一种不使用 map 的方法。

最佳答案

numpy 具有函数 loadtxtgenfromtxt ,但都不是特别快。 read_csv 是广泛分布的图书馆中最快的文本阅读器之一。在 pandas 中发挥作用(http://pandas.pydata.org/)。在我的电脑上,使用 numpy.loadtxt 读取每行包含两个整数的 500 万行大约需要 46 秒。 , 26 秒 numpy.genfromtxt , 和 pandas.read_csv 略多于 1 秒.

这是显示结果的 session 。 (这是在 Linux,Ubuntu 12.04 64 位上。你在这里看不到它,但在每次读取文件后,通过在单独的 shell 中运行 sync; echo 3 > /proc/sys/vm/drop_caches 来清除磁盘缓存。)

In [1]: import pandas as pd

In [2]: %timeit -n1 -r1 loadtxt('junk.dat')
1 loops, best of 1: 46.4 s per loop

In [3]: %timeit -n1 -r1 genfromtxt('junk.dat')
1 loops, best of 1: 26 s per loop

In [4]: %timeit -n1 -r1 pd.read_csv('junk.dat', sep=' ', header=None)
1 loops, best of 1: 1.12 s per loop

关于python - 在 Python 中读取输入的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15096269/

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