【发布时间】:2019-03-05 00:08:15
【问题描述】:
我刚开始使用机器学习,所以我尝试了 kaggle 的 MINST。我真的很好奇事情是如何运作的,因为我在网上找不到答案,所以我认为在这里发表我的第一篇文章是个好主意。
我在 keras 上使用 CNN 做了一个简单的模型。这将是使用 google colab 输出的预测。
Ynew =model.predict_classes(test_data)
Ynew.shape
(28000,)
Ynew
数组([2, 0, 9, ..., 3, 9, 2])
现在我尝试用它制作一个 DataFrame,但我真的不明白为什么我可以用一种方式而不是另一种方式。
这个很好用,我得到了一张 28000x2 的桌子:
labels = ["ImageId","Label"]
col= list(range(1,28001))
submission=pd.DataFrame({"ImageId":col,"Label":Ynew})
但在这一排上,我把所有东西都挤在了 1 排里:
submission2=pd.DataFrame(data=[[col,Ynew]],columns=labels)
两种方式不应该一样吗? 希望帖子没有那么糟糕,谢谢!
【问题讨论】:
-
第二种方式,你的括号可能太多了。数据 = [col, Ynew] ??
-
谢谢@bakka,我尝试不使用双括号,但出现错误“2 列已通过,传递的数据有 28000 列”。我还更改了不包括列表命令的范围(1,28001)。有什么想法吗??
-
是的,你是对的。执行 [col, Ynew] 将给出等于数组 (2, 28000) 的列表列表。您可以修改列表,但我认为创建 2D-ndarray 更容易。
标签: python pandas dataframe kaggle