SunnyEdward 2022-04-16 14:57 采纳率: 75%
浏览 159
已结题

关于使用numba的jit代码加速出现numpy数组使用错误的问题

我正在使用numba的jit代码加速,代码如下:

@jit(nopython=True)
def testrun2():
    for i in range(5):
        nx = np.empty(shape=(0,1))
        for j in range(5):
            nx=np.append(nx,[eta2[j]*(hour_avgV2[j]/hour_avgV1[i])])
            print(nx.mean())

if __name__ == '__main__':
    t1 = time.time()
    testrun2()
    t2 = time.time()
    print(t2-t1)

报错如下:

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Cannot unify array(float64, 2d, C) and array(float64, 1d, C) for 'nx.2', defined at /tmp/ipykernel_8059/3388145730.py (5)

File "../../../../tmp/ipykernel_8059/3388145730.py", line 5:
<source missing, REPL/exec in use?>

During: typing of assignment at /tmp/ipykernel_8059/3388145730.py (5)

File "../../../../tmp/ipykernel_8059/3388145730.py", line 5:
<source missing, REPL/exec in use?>

如果我把@jit(nopython=True)注销掉,这代码可以正常运行。或者如果我把nx = np.empty(shape=(0,1))这一行放入第二层for循环,代码也可以正常运行,但是这不符合我的运算逻辑。
请问有什么方法能够解决这个问题吗?

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2022-04-18 10:08
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 创建了问题 4月16日

悬赏问题

  • ¥40 微信小程序 使用vant组件ActionSheet 下拉面板,内容区域滚动会触发。scroll-view自定义下拉刷!即使设置停止下拉刷新也不行。
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
  • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
  • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变
  • ¥15 使用华为ENSP软件模拟实现该实验拓扑
  • ¥15 通过程序读取主板上报税口的数据
  • ¥15 matlab修改为并行
  • ¥15 尝试访问%1服务的windows注册表时遇到问题。必须先解决此问题,然后才能运行安装过程。(请确认您正在使用管理员权限运行)373