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

无法对含astropy.Time对象的numpy数组执行乘法运算

解决Python中numpy数组与astropy.Time对象相乘导致的段错误问题

你遇到的Fatal Python error: Segmentation fault本质原因是:list2中的数组元素并非普通numpy数值数组,而是带有astropy.Time隐式单位的时间对象,这类对象与普通numpy数组直接执行乘法操作时,会触发底层内存访问错误。

解决步骤:

  • 验证元素类型:先确认list2元素的类型,执行以下代码:

    print(type(list2[0]))
    print(list2[0])
    

    若输出包含astropy.time.Time相关标识,即可确认问题根源。

  • 提取数值分量再运算:astropy.Time对象可通过.value属性提取其原始数值(如JD、MJD格式的浮点数),转换为普通numpy数组后再做乘法:

    # 单个元素相乘示例
    single_result = list1[0] * list2[0].value
    
  • 批量处理list2所有元素:用列表推导式或循环高效完成批量运算:

    # 列表推导式写法
    all_results = [list1[0] * arr.value for arr in list2]
    
    # 普通循环写法
    all_results = []
    for arr in list2:
        all_results.append(list1[0] * arr.value)
    
  • 额外注意:确保该乘法操作符合天文数据的物理意义,若无需保留时间单位上下文,再执行上述提取操作;若有单位转换需求,可先通过astropy的单位系统处理后再运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:15:36