我正在使用SDSS光谱,我使用mrdfits
读取了一个拟合文件,它说数据存储在8 columns and 3838 rows
中,这是数据的正确尺寸。
但是当我使用print spec[0,1]
查找特定列时,它会返回out of bound
的错误。如果我使用print spec[0*1]
,则会输出
{11.7020 3.58080 0.0990829 0 0 1.49589 15.6233 10.8985}
我认为这是一个元素,而不是8.我如何将这些列从这个数组中分离出来?
答案 0 :(得分:1)
我不熟悉您的确切数据格式,但似乎每行都是一个包含8个字段的结构。 HELP
命令对您有用:
IDL> help, spec[0]
应该为您提供有关如何访问数据列的输出。例如,我可以举例spec
向您展示(不要担心这个命令,你已经有了spec
!):
IDL> spec = replicate({a: 0, b:0, c:0, d:0, e:0, f:0, g:0, h:0}, 3838)
HELP
会告诉您有一系列结构:
IDL> help, spec
SPEC STRUCT = -> <Anonymous> Array[3838]
单个行上的 HELP
将告诉您字段(列)的名称:
IDL> help, spec[0]
** Structure <170b6a8>, 8 tags, length=16, data length=16, refs=2:
A INT 0
B INT 0
C INT 0
D INT 0
E INT 0
F INT 0
G INT 0
H INT 0
您还可以访问整个列:
IDL> help, spec.a
<Expression> INT = Array[3838]
您可以通过多种方式对数据进行切片和切块,查看spec[100]
,spec[100].a
,spec.a
或spec.a[100]
。您还可以使用常规数组索引,例如spec[10:19].a
。