我希望为SFrame中的单个元素(即单行和列)赋值。我正在使用Python并导入graphlab。
我创建了一个维度为16364行x37列的SFrame。列'test‘包含零。
我使用了以下语法来设置值: sf1 = 3;
如果我输入: sf1
然后我看到正确的值,即"3“
但如果我输入: sf
然后,我只看到所有列'test‘的值为零。
同样适用于sf.head()或sf‘’test‘或sf’‘test’..head()
我不明白为什么一种语法显示"3“的值,而另一种语法却没有。sf1 3或0中的值是?
发布于 2016-02-22 15:35:06
SFrames是不可变的,因此它们实际上不支持项分配。你在这里看到差异的原因是
sf[1]['test']实际上根本不是指SFrame。"sf1“返回一个字典,其中包含与SFrame列名匹配的键,以及与SFrame第二行匹配的值。当您将一个数字分配给"sf1“时,您正在更改字典中返回的"test”键的值,因此SFrame "sf“不包含在分配中。只引用列"test“的第二个值并分配值"3”的正确方法是:
sf['test'][1] = 3它将返回此错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-c52dab41d5dd> in <module>()
----> 1 sf['test'][1] = 3
TypeError: 'SArray' object does not support item assignmenthttps://stackoverflow.com/questions/35548668
复制相似问题