我试图得到这样的输出:
169.764569892, 572870.0, 19.6976
但是我遇到了一个问题,因为我输入的文件的格式类似于我刚刚显示的输出,但是数据中的某些行将“nan”作为我需要删除的变量。我正在尝试使用它来这样做:
TData_Pre_Out = map(itemgetter(0, 7, 8), HDU_DATA)
TData_Pre_Filter = [Data for Data in TData_Pre_Out if Data != 'nan']
在这里,我试图使用列表理解来让“nan”消失,但输出仍然显示它,任何有关正确过滤的帮助将不胜感激。
编辑:不正确的输出如下所示:
169.519361471, nan, nan
而不是我上面显示的。此外,还有更多信息:1)这是来自一个特殊的数据文件,而不是文本文件,所以分割行不起作用。2) 输入与输出完全相同,只是使用我在上面显示的 map() 行进行映射并拆分为我实际需要的索引(即,而不是使用所有数据列表,如 L = [(1,2 ,3),(3,4,5)] 我只从该列表中提取 1 和 3,以便为您提供数据结构的要点)数据是这样读入的:
with pyfits.open(allfiles) as HDU:
HDU_DATA = HDU[1].data
语法来自一个专门的程序,但你明白了