【发布时间】:2014-03-07 01:24:34
【问题描述】:
我有一个函数,它可以读取 .csv 文件并将其存储在数组中。
def read_csv(self, filename, delimiter = ',', quotechar = '"'):
reader = csv.reader(open(filename, 'rb'), delimiter = delimiter, quotechar = quotechar)
# read first line and extract its data
self.column_headings = np.array(next(reader))
# read subsequent lines
rows = []
for row in reader:
rows.append(row)
self.data = np.array(rows)
self.m, self.n = self.data.shape
我只是试图读取一个 .tsv 文件,以便它以相同的形式返回。到目前为止我有这个:
traindata = np.array(p.read_table('train.tsv'))[:,2]
但是,当我尝试调用时:
m, n = traindata.data.shape
# Display
print m, n, traindata.column_headings
我得到了错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-14-1f877ccb37b5> in <module>()
----> 1 m, n = traindata.data.shape
AttributeError: 'buffer' object has no attribute 'shape'
是什么导致了这个问题,我该如何解决?
【问题讨论】:
-
如果您正在读取 .tsv 文件(即制表符分隔值文件),分隔符不应该是 '\t' 吗?
-
@superjump read_csv 函数仅用于读取 csv 文件,我希望我正在读取的 tsv 格式相同,但似乎无法调用 print m, n, traindata.column_headings 函数:)
标签: python arrays list numpy scikit-learn