我试图从所有这些数据表中分别读取一些数据运算,我似乎无法做到这一点。
数据可在此处获取:http://cdsweb.u-strasbg.fr/topbase/tables/AGS05.OP17
有126个表,它为前100个表提供了空数组,然后逐渐填充它们。我做错了什么?
代码:
import numpy as np
from matplotlib import pyplot as plt
for x in np.arange(0,126):
table = np.genfromtxt('AGS05.OP17',skip_header=(245+(x*71)),skip_footer=(9500-(x*71)))
print x
print table
另外,如果我试图只获得第一个
In [38]: np.genfromtxt('AGS05.OP17',skip_header=245, skip_footer=9500)
Out[38]: array([], dtype=float64)
答案 0 :(得分:0)
这将读取列表中的126个表:
tables = []
diff_header = 76
diff_footer = 73
with open('AGS05.OP17', 'rb') as fobj:
for x in np.arange(126):
header_skip = 245 + x * diff_header
footer_skip = 9125 - x * diff_footer
tables.append(np.genfromtxt(fobj, skip_header=header_skip,
skip_footer=footer_skip))
fobj.seek(0)
>>> len(tables)
126
>>> len(tables[0])
70
>>> len(tables[-1])
>>> tables[-1]
array([[ 3.75 , -0.433, -0.838, ..., 0.162, 0.592, 0.986],
[ 3.8 , 9.999, -0.476, ..., 0.372, 0.797, 1.227],
[ 3.85 , 9.999, -0.388, ..., 0.765, 1.094, 1.467],
...,
[ 8.3 , 9.999, 9.999, ..., 9.999, 9.999, 9.999],
[ 8.5 , 9.999, 9.999, ..., 9.999, 9.999, 9.999],
[ 8.7 , 9.999, 9.999, ..., 9.999, 9.999, 9.999]])
70