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 t...
·
Numpy 对战 Pandas 之CSV文件读取效率
本文旨在分析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秒,(上面还有一大堆打印的结果就没粘贴出来)
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到编程的快乐。
加油!
更多推荐



所有评论(0)