0
このコードの使用時間を短縮しようとしています。 私のコードは、2500株の指数移動平均(ema(データ、期間)関数として)を計算することです。このコードのパフォーマンスを上げる方法
input:: stock_data[name] = [x,x,x....]
output:: ema[stockname][period] = [x,x,x....]
私のコード:
stock_names = ['ABC',...] #2500 name
ema_periods = [5, 10, 11, 12, 13, 14, 15, 16, 20, 25, 30, 35, 40, 45, 50, 75, 90, 100, 200] #19 periods
# get data
stock_data = dict()
for name in stock_names:
stock_data[name] = get_stock_data(name) #each name keep 2000 values
start = time.time()
ema_dict = dict((key, dict((period, ema(stock_data[key], period)) for period in ema_periods)) for key in stock_data.keys())
print('elasped : ', time.time()-start)
私はそれを10回
AVGを実行しています。時間はelasped = 17.60秒
は、私は、データが嘲笑されるのデータは、それがより良い方法を持っていないので、提案は唯一
ema_dict = dict((key, dict((period, ema(stock_data[key], period)) for period in ema_periods)) for key in stock_data.keys())
で私のパフォーマンスを向上させたいです。
ありがとうございます。
私は、パフォーマンスのボトルネックを考えますおそらくこのコードではなく 'get_stock_data(..)'や 'ema(..)'となります。 –
'get_stock_data'と' ema'とは何ですか? – fuglede