4

我正在尝试加载一个仅由浮点类型组成的 csv 文件。

data = np.genfromtxt(self.file,dtype=float,delimiter=self.delimiter,names = True)

但这会返回一个元组数组。根据我的搜索,这应该只返回非同质数组的元组。numpy.genfromtxt 生成看起来像元组的数组,而不是二维数组——为什么?. 当我删除 时names=True,它确实返回了一个二维数组。是否可以返回具有链接中名称的数组?

来自 csv 的行:

0 _id|1 age|2 unkown|3 male|4 female|5 match-start|6 score
8645632250|7744|0|1|0|1|10

(还有更多的专栏,我只写了前六篇。)

我还使用此代码来更好地命名列:

def obtain_data(self):
with open(self.file, 'r') as infile:
  first_line = infile.readline()
  labels = first_line.split('|')
  labels = list(map(trunc_before,labels))
  data = np.genfromtxt(self.file,dtype=float,delimiter=self.delimiter,names = labels,skip_header=1)
  return data,  np.asarray(labels)
4

1 回答 1

5

听起来你在问是否有可能有一个标准的二维数组,同时也有命名的列。它不是。(至少在你似乎问的意义上不是。)

“带有名称的数组”一个结构化数组——它是一个记录数组(不是真正的元组),每个记录都有命名字段。可以这样想:名称没有附加到数组,它们附加到“元组”——记录。数据是同质类型的事实并不重要。

于 2013-09-04T11:57:00.117 回答