我有以下形式的数据:
#---------------------
# Data
#---------------------
p q r y 1 y 2 y 3 y 4
2 8 14 748 748 748 790
2 9 22 262 245 252 328
1 5 19 512 514 511 569
2 7 19 748 748 748 805
3 11 13 160 168 108 164
2 7 20 788 788 788 848
1 4 15 310 310 310 355
3 12 17 230 210 213 218
我正在尝试使用 np.genfromtxt() 生成数组 B,使用以下代码:
import numpy as np
A = open('data.dat', "r")
line = A.readline()
while line.startswith('#'):
line = A.readline()
A_header = line.split("\t")
A_header[-1] = A_header[-1].strip()
B = np.genfromtxt('data.dat', comments='#', delimiter='\t', names = A_header, dtype = None, unpack = True).transpose()
print B
print B['y_1']
我有两个问题:
为什么 np.genfromtxt() 在导入时不删除数据头?导入数据时,数组 B 仍然具有标题 p, q, ... y 3, y 4。
为什么我们必须为标题名称提供下划线,例如 y_1、y_2 等?为什么我们不能提供 y 1, y 2 ... y 4 的名称?