csvを読むよりnumpy arrayをロードした方がだいぶ速い
大きなファイルだと、np.genfromtxtとnp.loadでスピードにかなり差が出る。
import numpy as np import time a=np.arange(10000).reshape([1000,10]) np.save('data_to_read_np',a) np.savetxt('data_to_read_csv.csv',a,delimiter=',')
1000回ずつ読み込む。
rep = 1000 start = time.time() for i in xrange(rep): b = np.genfromtxt('data_to_read_csv.csv', delimiter=',') elapsed_time_csv =time.time() - start start = time.time() for i in xrange(rep): c = np.load('data_to_read_np.npy') elapsed_time_np =time.time() - start print('Read csv:'+str(elapsed_time_csv)+'sec') print('Read np: '+str(elapsed_time_np)+'sec')
結果。
Read csv:10.2129998207sec Read np: 0.53200006485sec
小さなファイルならそれほど差は出ない。
a=np.arange(1000).reshape([100,10])
結果
Read csv:1.47600007057sec Read np: 0.424000024796sec
np.loadの方が、ファイルサイズから影響を受けづらくなっている。