簡體   English   中英

為什么numba在numpy方法時拋出錯誤(nopython = True)?

[英]Why is numba throwing an error regarding numpy methods when (nopython=True)?

我正在嘗試使用numba來提高我編寫的一些代碼的速度,這些代碼相當慢。 花費的大部分時間都在一個功能中。 首先我嘗試使用

@jit 

在我的函數定義之前,它改進了時序。 然后,我嘗試使用

@jit(nopython=True) 

代替。 從我在文檔中看到的內容,我應該支持我在函數中使用的numpy方法(例如轉置)。 但是,我收到了一個錯誤

Failed at nopython (nopython frontend)
Untyped global name 'transpose'

為了使用transpose ,您需要以numpy數組的方法的形式調用它(如文檔描述的那樣 )。 以下是有效的:

import numpy as np
import numba as nb

@nb.jit(nopython=True)
def func(x):
    y = x.transpose()  # or x.T
    return y

x = np.random.normal(size=(4,4))
x_t = func(x)

但是在函數中調用y = np.transpose(x)則不行。 我假設你正在做后者。 注意,我使用Numba 0.25.0作為參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM