You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将双列FITS表转换为二维数组

把Astropy Table转成二维数组的入门思路

嘿,这个需求其实挺容易实现的,Astropy的Table类本身就和NumPy数组兼容性很好,给你几个简单的入门方法:

  • 方法一:利用Table的as_array()方法转换
    首先用as_array()把整个表转成NumPy的结构化数组,然后再把结构化数组的两列提取出来组合成普通二维数组:

    from astropy.table import Table
    import numpy as np
    
    # 读取你的FITS二进制表
    fits_table = Table.read("your_data.fits")
    
    # 转成结构化数组
    structured_arr = fits_table.as_array()
    # 提取两列并组合成二维数组(替换成你实际的列名)
    two_d_arr = np.column_stack([structured_arr["column1"], structured_arr["column2"]])
    
  • 方法二:直接提取列数据再堆叠
    更直接的方式是单独取出每一列的底层NumPy数组,然后用NumPy的堆叠函数组合:

    # 提取每一列的数据(.data属性直接返回NumPy数组)
    col1 = fits_table["column1"].data
    col2 = fits_table["column2"].data
    
    # 按列堆叠成二维数组
    two_d_arr = np.column_stack((col1, col2))
    # 如果想按行排列可以用np.vstack,不过双列场景下column_stack更常用
    

额外小提示:如果你的两列数据类型不同,NumPy会自动把它们转换为兼容的类型;如果需要指定特定类型,可以在堆叠时加上dtype参数,比如np.column_stack((col1, col2), dtype=np.float64)。

内容的提问来源于stack exchange,提问作者akearney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:27:40