前提・実現したいこと
pythonでバイナリファイルを読み込む関数(bin_read)を高速化しようとしています.
環境はpython3.6
発生している問題・エラーメッセージ
numbaを導入して高速化を図ったのですが,jitありとjitなしで速度がほとんど変わりません.
該当のソースコード
python
1import numpy as np 2import struct 3import time 4from numba import jit 5 6def bin_read(fid,data_length,offset=0): 7 if offset!=0: fid.seek(offset*2,0) 8 data=np.zeros(data_length,dtype=None) 9 for i in range(data_length): 10 data[i]=struct.unpack('h',fid.read(2))[0] 11 return data 12 13@jit 14def bin_read_jit(fid,data_length,offset=0): 15 if offset!=0: fid.seek(offset*2,0) 16 data=np.zeros(data_length,dtype=None) 17 for i in range(data_length): 18 data[i]=struct.unpack('h',fid.read(2))[0] 19 return data 20 21if __name__ == '__main__': 22 fs=10*10**6 23 duration=0.5 24 fid = open('test.bin','rb') 25 t1 = time.time() 26 data=bin_read(fid,int(duration*fs*2)) 27 t2 = time.time() 28 print(type(data)) 29 elapsed_time = t2-t1 30 print("elapsed_time") 31 t1 = time.time() 32 data=bin_read_jit(fid,int(duration*fs*2)) 33 t2 = time.time() 34 elapsed_time = t2-t1 35 print("elapsed_time")
試したこと
↓このサイトに載っていたサンプルプログラムを試して実行速度が上がることは確認したので,numbaはしっかりインストールされていると思われます.
http://yutori-datascience.hatenablog.com/entry/2014/12/09/235628
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/19 05:33
2018/07/19 05:36
2018/07/19 05:57