在 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).
我有以下文件:
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).