正文

# 从X和Y中取出相应步长对应的数组并保存至x_data和y_data中 
x_data = [] 
y_data = [] 
for i in range(len(K) - 24*n + 1): 
    x_data.append(X[i:i + 24*n, :]) 
    y_data.append(Y[i + 24 * n:i + 24 * n + 24 * n, :]) 
# 将x_data和y_data转为ndarray 
n_train_hours = 24*365 
x_train = np.array(x_data)[: n_train_hours, :, :] 
y_train = np.array(y_data)[: n_train_hours, :, :] 
12345678910

上述代码最后一排报错

python多维列表总是只转为一维数组如何解决

该报错是指y_data转为array之后变成了一维数组,而我要取三维的数据,两者维度不符合。
于是我做了这样一个工作:

# 检查y_data中的每个二维数组的shape 
for i in range(len(y_data)): 
    print(y_data[i].shape) 
123

得到如下输出:

python多维列表总是只转为一维数组如何解决

原本y_data当中应该所有数组是同样的shape,即(216,1),但通过循环打印发现shape不一致,导致多维列表转成了一维数组,出现了上述报错。
最终发现问题来源于循环,改为以下代码:

x_data = [] 
y_data = [] 
for i in range(len(Y) - 24 * n - 24 * n + 1): 
    x_data.append(X[i:i + 24*n, :]) 
    y_data.append(Y[i + 24*n:i + 24*n + 24*n, :]) 
12345

本文参考链接:https://www.yisu.com/zixun/734798.html
评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java多线程中Lock锁如何使用