当前位置: 代码迷 >> 综合 >> Numpy 对战 Pandas 之CSV文件读取效率
  详细解决方案

Numpy 对战 Pandas 之CSV文件读取效率

热度:81   发布时间:2023-11-07 21:12:30.0

Numpy 对战 Pandas 之CSV文件读取效率

  • 1. Numpy.loadtxt()
  • 2. Pandas.read_csv()
  • 3. 总结
  • 4. 意外发现

本文旨在分析Numpy读取CSV文件和Pandas读取CSV文件的对比。
在这里插入图片描述

1. Numpy.loadtxt()

官网教程-Numpy.loadtxt()
使用numpy中的loadtxt()方法可以很方便的读取文件,代码如下:

import time
import numpy as np
path = r"C:\Users\hewenyong\Desktop\csv\csv_folder\2.csv"start = time.clock()  # 起始时间
dataset = np.loadtxt(path, dtype=np.str, delimiter=',') # 读取文件
test_dict = {
    }
data = dataset.tolist()
for item in data:print(item)
end = time.clock()  # 结束时间print(str(end-start))

结果如下:
红色框起来的为整个读取csv文件的的时间,大约0.106秒,(上面还有一大堆打印的结果就没粘贴出来)
Numpy.loadtxt()读取文件时间结果图


2. Pandas.read_csv()

官网教程-Pandas.read_csv()
这是pandas.read_csv()方法的基本使用过程,代码如下:

import time
path = r"C:\Users\hewenyong\Desktop\csv\csv_folder\2.csv"start = time.clock()
with open(path, 'r', encoding='UTF-8') as f:dataset = pd.read_csv(f, header=None)
for index,row in dataset.iterrows():print(row[0],row[1])end = time.clock()print(str(end-start))

结果如下:
可以看到耗时大约0.386s
在这里插入图片描述


3. 总结

结论:
从上面结果图可以看到我们考虑从csv文件的读取,到遍历每一行数据完成。
numpy.load_txt()更胜一筹。


4. 意外发现

由于print函数等中间操作存在效率影响,所以将中间操作代码直接注释,只考虑文件读取过程,发现,结果恰恰相反,pandas.read_csv()时间更短。
结果如下表格:

numpy.load_txt() pandas.read_csv()
打按行印所有数据 0.106秒 0.386s
只考虑文件读取 0.0107秒 0.0029s

因此,具体使用没有绝对,还是看场景。

  • 论直接读取csv,pandas可能更快;
  • 但是当我们需要遍历每一行数据,则numpy更快。

开心,又Get到编程的快乐。
加油!

  相关解决方案