次の形式のデータがあります。
#---------------------
# 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']
2 つの質問があります。
インポート中に np.genfromtxt() がデータヘッダーを削除しないのはなぜですか? データがインポートされると、配列 B にはまだヘッダー p、q、... y 3、y 4 があります。
ヘッダー名 (y_1、y_2 など) にアンダースコアを付ける必要があるのはなぜですか? y 1、y 2 ... y 4 のように名前を付けられないのはなぜですか?