我正在学习时间序列教程。我发现了一些与此相关的内容:
for i in (train,test):
print(i)
现在,我的期望是我们正在迭代 train
和 test
的元组。但令人惊讶的是,我发现它首先处理了所有train
数据,然后处理了test
数据。幕后到底发生了什么?
编辑:训练和测试是 Pandas 数据帧。 假设代码是
for i in (a,b):
print(i)
然后输出
如果是列表:
[1,2,3]
[2,4]
对于数据帧:
0
0 1
1 2
2 3
0
0 2
1 4
最佳答案
在 Python 中,您可以通过执行 (1, 2, 3)
创建元组(即不可变列表)。这与创建列表 [1, 2, 3]
的方式类似。您在 for 循环中所做的是创建一个长度为 2 的元组,其中包含条目 train
和 test
,然后循环它们。
以下打印 1、2 和 3:
my_tuple = (1, 2, 3)
for i in my_tuple:
print(i)
...与此相同:
for i in (1, 2, 3):
print(i)
您的教程将其作为循环执行的原因很简单,即对训练和测试进行预测所需的操作是相同的。
以下示例可能更接近您的教程:
train = load_train_data()
model = train_model(train)
test = load_test_data()
for dataset in (train, test):
predictions = model.predict(dataset)
print(predictions)
这与以下内容相同:
train = load_train_data()
model = train_model(train)
test = load_test_data()
train_predictions = model.predict(train)
print(train_predictions)
test_predictions = model.predict(test)
print(test_predictions)
关于python - 同时循环测试和训练集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276450/