我的教授使用IDL并向我发送了一个ASCII数据文件,我需要这些文件最终能够读取和操作。添加名称并将数据类型分配给ASCII数据
他用下面的命令来读取数据:
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参数。我知道我可以将所有内容分配给某种数据类型,但是如何将数据类型分配给各个列?
欢迎来到stackoverflow! –
尝试[genfromtxt](http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt)也可以在[导入数据]的基础知识中找到好的部分(http:// docs .scipy.org/DOC/numpy的/用户/ basics.io.genfromtxt.html)。如果列是字符串,那么您将不得不以字节为单位给出确切的大小。一个简单的方法来分配'dtypes'作为元组,EG:'dtype = [('str1',str,8),('var1',float),('var2',int)]''。特别参见[数据类型]部分(http://docs.scipy.org/doc/numpy/user/basics.io.genfromtxt.html#choosing-the-data-type)。 –
即使你要成为一名天文学家,你应该使用Python(或者也许是朱莉娅,甚至是Ruby),而不是将自己限制为一种专有语言:) – Iguananaut