因此,我正在学习机器学习教程,遇到了以下代码行:
pred_list = []
batch = train[-n_input:].reshape((1, n_input, n_features))
for i in range(n_input):
pred_list.append(model.predict(batch)[0])
batch = np.append(batch[:,1:,:],[[pred_list[i]]],axis=1)
具体地说,for循环内部发生了什么。我知道第一行代码会获取预测的第一个值,这只是一个值。接下来,它将值附加到批处理的末尾,这就是我感到困惑的地方
为什么批处理位于代码的第二行batch[:,1:,:]
?这是什么意思?我不太确定数据帧切片,有人能解释一下for循环中第二行代码的含义吗?非常感谢。这里有个问题。谢谢你的阅读
在我看来
batch
是一个numpy数组,具有3个维度的形状(1, n_input, n_features)
,1行n_input
列和n_features
深度batch[:,1:,:]
将是batch
的一个片段,从batch
的第二列到最后一列(python是基于0的索引)。我猜这些列表示input
,即输入1到最后的所有特性batch = np.append(batch[:,1:,:],[[pred_list[i]]],axis=1)
沿着作为列的axis=1
将[[pred_list[i]]]
追加到batch
的切片上。所以我猜它会从batch
中删除第一个输入,并将新的[[pred_list[i]]]
作为最后一个输入添加到batch
中,然后对batch
中的所有输入重新执行此操作ndarray
可以通过两种方式编制索引或者
或
第一个索引为您提供行、第二列、第三层等。这两种方法都将为您提供第二行、第一列和第三层中的元素
batch[:,1:,:]
表示您需要所有行、第一列之后的所有列和所有层p.S
如果你知道一个更好的词,我在这里用了层这个词
相关问题 更多 >
编程相关推荐