如果你的数据文件是这样的结构
col1, col2, col3
1, 2, 3
10, 20, 30
100, 200, 300
然后numpy.genfromtxt 可以使用names=True 选项将第一行解释为列标题。有了这个,您可以通过提供列标题非常方便地访问数据:
data = np.genfromtxt('data.txt', delimiter=',', names=True)
print data['col1'] # array([ 1., 10., 100.])
print data['col2'] # array([ 2., 20., 200.])
print data['col3'] # array([ 3., 30., 300.])
因为在你的情况下,数据是这样形成的
row1, 1, 10, 100
row2, 2, 20, 200
row3, 3, 30, 300
您可以使用以下代码 sn-p 实现类似的功能:
labels = np.genfromtxt('data.txt', delimiter=',', usecols=0, dtype=str)
raw_data = np.genfromtxt('data.txt', delimiter=',')[:,1:]
data = {label: row for label, row in zip(labels, raw_data)}
第一行将第一列(标签)读入字符串数组。
第二行从文件中读取所有数据,但丢弃第一列。
第三行使用字典理解来创建一个字典,该字典的使用非常类似于numpy.genfromtxt 使用names=True 选项创建的结构化数组:
print data['row1'] # array([ 1., 10., 100.])
print data['row2'] # array([ 2., 20., 200.])
print data['row3'] # array([ 3., 30., 300.])