并行列表理解?

时间:2017-01-15 18:12:14

标签: python python-3.x dictionary list-comprehension

我有和字典包含股票名称和价格以及指数移动平均期间:

stock_data = dict()
stock_data['AOT_day'] = [1,2,3,4,5]
stock_data['AOT_week'] = [1,2,3,4,5]
ema_periods = [2, 3]

我使用字典理解来计算电子邮件:

ema_dict = dict((key, dict((period, ema(stock_data[key], period)) for period in ema_periods)) for key in stock_data.keys())

我的结果:

>>>> {'AOT_day': {2: ['nan', '37.62', '38.04', '38.18', '38.39'], 3: ['nan', 'nan', '37.83', '38.04', '38.27']}, 'AOT_week': {2: ['nan', '37.62', '36.21', '36.40', '37.30'], 3: ['nan', 'nan', '36.92', '36.71', '37.23']}}

之后,我试着让它并行测试时间elaspe,但我的输出是错误的

mycode的:

def gen_ema(stock_data, key, periods):
    result = dict((period, ema(stock_data[key], period)) for period in periods)
    return result

num_cores = multiprocessing.cpu_count()

results = Parallel(n_jobs=num_cores)(delayed(gen_ema)(stock_data, key, ema_periods) for key in stock_data.keys())

我的结果:

>>>> [{2: ['nan', '37.62', '38.04', '38.18', '38.39'], 3: ['nan', 'nan', '37.83', '38.04', '38.27']}, {2: ['nan', '37.62', '36.21', '36.40', '37.30'], 3: ['nan', 'nan', '36.92', '36.71', '37.23']}]

我尝试将第二个结果与第一个结果相同但我感到困惑。

谢谢。

0 个答案:

没有答案