据我的导师说,'galaxy_data.dat'下面的数据文件应包含3列,第一列包含星系的名称(忽略),第二列和第三列包含银河系的衰退速度和银河系光线的消失。每列应该包含8个星系的数据,但是当我尝试使用np.loadtxt将数据放入数组并打印这些数组时,我只给出了两位数据。
data_array9 = np.loadtxt("galaxy_data.dat", dtype= "float", usecols = (1,2))
recessional_velocity = data_array9[1]
V_band_extinction = data_array9[2]
当我打印两个阵列;
in: recessional_velocity
Out: array([1.51e+03, 4.34e-02]) (two bits of data)
in: V_band_extinction
Out: array([1.152e+03, 7.750e-02]) (two bits again)
我不知道我的代码是否有问题,或者文件是否搞砸了。救命!
编辑:我将数据文件转换为文本文件,这就是它的样子:
#Galaxy Recession A_{V,MW} #Name Velocity (km/s) (mag) NGC3627 427 0.0992 NGC3982 1510 0.0434 NGC4496A 1152 0.0775 NGC4527 1152 0.0682 NGC4536 1152 0.0558 NGC4639 1152 0.0806 NGC5253 170 0.1736 IC4182 303 0.0434
你错误地索引 - 你得到的行不是列。
试试这个:
t = '''#Galaxy Recession A_{V,MW}
#Name Velocity (km/s) (mag)
NGC3627 427 0.0992
NGC3982 1510 0.0434
NGC4496A 1152 0.0775
NGC4527 1152 0.0682
NGC4536 1152 0.0558
NGC4639 1152 0.0806
NGC5253 170 0.1736
IC4182 303 0.0434'''
with open("f.txt","w") as f:
f.write(t)
import numpy as np
data_array9 = np.loadtxt("f.txt", dtype= "float", usecols = (1,2))
# recessional_velocity
print(data_array9[:,0]) # [ 427. 1510. 1152. 1152. 1152. 1152. 170. 303.]
# V_band_extinction
print(data_array9[:,1]) # [0.0992 0.0434 0.0775 0.0682 0.0558 0.0806 0.1736 0.0434]