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

Numba 0.60版本为何无法兼容numpy.polynomial.polynomial.Polynomial?

问题解决:Numba下numpy多项式构造函数类型不匹配错误

问题原因

你遇到的错误是因为Numba将*coeffs可变参数推断为UniTuple(int64 x 2)类型,而当前Numba 0.60对numpy.polynomial.polynomial.Polynomial的实现仅支持接收numpy数组作为输入参数,不直接支持元组/UniTuple类型,导致类型匹配失败。

解决方案

在函数内部将可变参数转换为numpy数组,再传入Polynomial构造函数即可解决。

修改后的代码示例

import numba
import numpy

@numba.jit
def test(*coeffs):
    # 将可变参数转换为numpy数组
    coeffs_arr = numpy.array(coeffs)
    poly = numpy.polynomial.polynomial.Polynomial(coeffs_arr)
    return poly(10)

c = (2,1)
test(*c)

另一种写法(直接传入数组)

如果可以调整参数形式,直接传入numpy数组会更简洁:

import numba
import numpy

@numba.jit
def test(coeffs):
    poly = numpy.polynomial.polynomial.Polynomial(coeffs)
    return poly(10)

c = numpy.array((2,1))
test(c)

说明

转换为numpy数组后,参数类型符合Numba对Polynomial构造函数的支持要求,就能正常完成JIT编译并执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:14:56