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

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 对战 Pandas 之CSV文件读取效率_第1张图片


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
Numpy 对战 Pandas 之CSV文件读取效率_第2张图片


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到编程的快乐。
加油!

你可能感兴趣的:(Numpy,Pandas学习)