我的教授使用IDL并给我发送了一个ASCII数据文件,我最终需要能够读取和操作该文件。他使用以下命令来读取数据:
这是前两行的图片:http://i.imgur.com/hT7YIE3.png 由于我不会成为一名天文学家,所以我使用Python,但我对它还很陌生,因此我很难读取数据。
我知道他的代码将数据类型A(字符串数据)分配给第一列,通过使用X跳过第二到六列,然后将数据类型F(浮点数)分配给第七列等。然后sn被分配到第一个未被跳过的列中。
我一直在尝试使用
readcol, 'sn-full.txt', format='A,X,X,X,X,X,F,A,F,A,X,X,X,X,X,X,X,X,X,A,X,X,X,X,A,X,X,X,X,F,X,I,X,F,F,X,X,F,X,F,F,F,F,F,F', $
sn, off1, dir1, off2, dir2, type, gal, dist, htype, d1, d2, pa, ai, b, berr, b0, k, kerr
这是前两行的图片:http://i.imgur.com/hT7YIE3.png 由于我不会成为一名天文学家,所以我使用Python,但我对它还很陌生,因此我很难读取数据。
我知道他的代码将数据类型A(字符串数据)分配给第一列,通过使用X跳过第二到六列,然后将数据类型F(浮点数)分配给第七列等。然后sn被分配到第一个未被跳过的列中。
我一直在尝试使用
numpy.loadtxt("sn-full.txt")
或ascii.read("sn-full.txt")
来复制这个过程,但我不确定如何输入dtype参数。我知道我可以将所有东西都分配为某种数据类型,但如何为单独的列分配数据类型呢?
dtypes
的方法是作为元组,例如:dtype=[('str1',str,8), ('var1',float), ('var2', int)]
。特别是请查看关于数据类型的部分。 - Mark Mikofski