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

合并NumPy数组时int转decimal问题及同类型合并方法求助

解决numpy合并数组时类型自动转为浮点的问题

问题核心原因:初始的a是空列表,np.concatenate会自动将其转换为numpy数组,而空数组默认dtype为float64。当与int64类型的b合并时,numpy会进行类型提升,最终得到浮点型数组。

以下是三种可行的解决方案:

  • 提前指定a的类型为int64
    初始化a时直接创建空的int64类型数组,而非空列表:

    import numpy as np
    a = np.array([], dtype=np.int64)
    b = np.array([76522, 82096], dtype=np.int64)
    a = np.concatenate((a, b))
    # 输出结果:array([76522, 82096], dtype=int64)
    
  • 合并前将a转为与b同类型的数组
    如果a必须以列表形式存在,合并前先转换为和b一致的数据类型:

    import numpy as np
    a = []
    b = np.array([76522, 82096], dtype=np.int64)
    a = np.concatenate((np.array(a, dtype=b.dtype), b))
    # 输出结果:array([76522, 82096], dtype=int64)
    
  • 在concatenate时强制指定dtype
    直接在合并时通过dtype参数指定结果类型,强制覆盖类型提升逻辑:

    import numpy as np
    a = []
    b = np.array([76522, 82096], dtype=np.int64)
    a = np.concatenate((a, b), dtype=np.int64)
    # 输出结果:array([76522, 82096], dtype=int64)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:42:08