1

我试图避免在循环期间使用列表列表和追加,所以我想我可以创建一个大np.zeros数组,然后用np.split它来分批拆分它,并填充这些批次。代码如下所示:

N = inputData.size - len(inputData.columns) * (days_decay + 1)
all_params = np.zeros([N, 1])
all_params = np.split(all_params, len(inputData.columns))
for i, fx in enumerate(inputData.columns):
    fx_spots = inputData[fx]
    [ewma_vola, rets, ewma_mean] = compute_ewma(fx_spots, 0.98, 124)
    param_ts = rets[(days_decay + 1):] / ewma_vola[:-1]
    param_ts = param_ts.reshape(param_ts.shape[0], 1)
    all_params[:][i] = param_ts

请注意,最后,对于每次迭代,all_params[:][i].shape == param_ts.shape. 由于某种原因,数组中的数组都np.zeros在循环之后而不是被填充。任何想法我做错了什么?

谢谢!

PS我也不知道这是否会比列表和附加列表更快,但我也想尝试一下。最后甚至可能不值得。

4

0 回答 0