【发布时间】:2017-10-02 22:24:10
【问题描述】:
fvecs = []
for line in open(filename):
stats = line.split(',')
labels.append(int(stats[0]))
fvecs.append([float(x) for x in stats[5,6,12,27,29,37,39,41]])
我有一个很大的 csv。我用作包含 43 列和数百行的数据集的文件,我试图提取特定列以用作单独的记录,但我似乎无法解决这个问题。该错误是由最后一行代码引起的,并在标题中产生错误消息,当范围设置为时,它可以正常工作,例如 stats[30:38]。
我尝试将所需的列存储在单独的数组中,并像 stats[requiredcolumns] 一样调用它,但这会产生相同的错误。
我曾考虑过使用 pandas,但这只是来自一个更大程序的一小段代码,所有功能都正确,并且 pandas 的实现需要对整个程序进行彻底检查,这是不可能的,因为时间限制。
任何帮助将不胜感激
【问题讨论】:
-
stats只是一个列表,而不是 Numpy 数组。作为一个列表,它不支持 Numpy 的高级索引功能。如果 stats 中的所有项目都是数字,您可以先将其转换为 Numpy 数组,然后再尝试高级索引。即便如此,您用于索引的语法也不会像这样工作。 -
很遗憾,它们并非都是数字,所以您认为这不会像现在这样工作吗?