我试图避免在循环期间使用列表列表和追加,所以我想我可以创建一个大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我也不知道这是否会比列表和附加列表更快,但我也想尝试一下。最后甚至可能不值得。