gpt4 book ai didi

python - 如何从 fits 表 python 中进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 10:15:14 25 4
gpt4 key购买 nike

我有一张适合格式的 table 。我在 Python 中使用 astropy.io.fits 库。我正在阅读文件,我想打印我的数组条件。

例如,我想打印“CHI”列 > 值的所有行

#!/usr/bin/python
# coding: utf-8

from astropy.io import fits
import numpy as np

##################################
# Fichier contenant le champ 169 #
##################################

file = '/astromaster/home/xxxx/Bureau/Stage/Champs/Field_169/Field169_combined_final_roughcal.fits'

field169 = fits.open(file) # Ouverture du fichier à l'aide d'astropy

tbdata = field169[1].data # Lecture des données fits

#print tbdata['CHI']
#print tbdata[tbdata['CHI'] < 1.0]

for row in tbdata :
if tbdata['CHI'] < 1.0 :
print row

而且,如何在新打印的数组中添加一两个条件?

谢谢!

最佳答案

Astropy 的适合界面功能最适合处理图像数据,而不是表格数据。

Astropy tables图书馆会对你有所帮助。使用 t = astropy.table.Table.read(fname) (另外:file 在 Python 中保留,因此您应该避免将其用作变量名)将允许您将 FITS 表作为 Astropy 表读取,它的工作方式很像 numpy记录数组。

然后您可以根据列值进行过滤,例如:print t[t['CHI'] < 1.] (如果您不熟悉 numpy,您可能会阅读更多关于屏蔽和元素选择的内容,因为这与 numpy 的功能本质上相同——如果您不熟悉,我想阅读上面的声明“t这样 t['CHI'] 小于 1。")

您也可以组合条件:print t[(t['A'] < 1) & (t['B'] > 2)] .完成后,您可以使用 t.write(fname2) 写出

关于python - 如何从 fits 表 python 中进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35752388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com