Numpy 對戰 Pandas 之CSV文件讀取效率

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秒,(上面還有一大堆打印的結果就沒粘貼出來)
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到編程的快樂。
加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章