在 python 中使用 for 循环提取一系列带有星形的列

Using a for loop for extracting a range of columns with astropy in python

我有以下文件:

rowname1     0.0019      0.0142     -0.0258     -0.0058     -0.0097      
rowname2     0.0001      0.0168     -0.0268     -0.0063     -0.0072

并且我想提取从第 2 列(即避免使用 rownames 列)到第 x 列。到目前为止,我正在使用 astropy 模块 ascii.read 函数;如果我例如设置 x = 3:

from astropy.io import ascii
x = 3
evec = ascii.read('file', include_names=['col'[i] for i in xrange(2,x)])
print evec

只是 returns

<No columns>

for 循环应该如何才能正常工作?

谢谢!

您在 include_names 中有一个错误,即您 select 'col' 的第二个字符并且没​​有将数字连接到字符串。

只需将其替换为:

evec = ascii.read('file', include_names = ['col' + str(i) for i in xrange(2,x)])

又考虑到xrange的第二个参数没有包含;因此,如果您想在示例中包含 3,请使用 xrange(2,x+1).