我正在使用 PyMC 进行 MCMC 计算。我的数据由 47 个部分组成,每个部分的形状为 24 * 1000。
为了让 MCMC 工作,我从 47 个部分中创建了一个大型阵列,所以我现在有一个 (1128)* 1000 阵列。
然后拟合的模型创建一个相同大小的数组。它在循环中执行此操作,因为对于 47 个部分中的每一个部分,都必须加载不同的值(如缩放因子)。
可以说 map 是我的数组:
for i in range(len(map[::])/47):
scale = scale_all[i]
self.trans_calc["t"] = 0.
self.trans_calc.xyzPos()
pos0 = self.trans_calc.calc_pos1()
for k in range(24):
self.trans_calc["t"] = self.time[k]
self.trans_calc.xyzPos()
if self.trans_calc.onstar() == False:
curve = pos0
else:
pos1 = self.trans_calc.calc_pos1()
curve = pos0 - pos1 + 1.0 * scale
map[k+i*47] = curve
return map
由于 47 个部分相互独立,如果我使用多处理,我会得到加速。
我只是不明白我必须如何设置它才能写入地图中的正确位置。我一直在寻找解决方案,但没有找到任何东西。或者我不明白我发现了什么。