我正在尝试使用 numba jit 编写我的第一个函数,我有一个 Pandas 数据框,我需要遍历它并找到每 350 个点的均方根,因为 python 的 for 循环非常慢,我决定尝试使用 numba jit,代码是:
@jit(nopython=True)
def find_rms(data, length):
res = []
for i in range(length, len(data)):
interval = np.array(data[i-length:i])
interval =np.power(interval, 2)
sum = interval.sum()
resI = sum/length
resI = np.sqrt(res)
res.appennd(resI)
return res
mydf = np.array(df.iloc[:]['c0'], dtype=np.float64)
df.iloc[350:]['rms'] = find_rms(mydf, 350)
Run Code Online (Sandbox Code Playgroud)
我在某处读到我需要指定数据类型,因此我写了“dtype = np.float64”,但我仍然收到错误消息:
---------------------------------------------------------------------------
TypingError Traceback (most recent call last)
<ipython-input-39-4d388f72efdc> in <module>
----> 1 df.iloc[350:]['rms'] = find_rms(mydf, 350.0)
c:\users\1\appdata\local\programs\python\python35\lib\site-packages\numba\dispatcher.py in _compile_for_args(self, *args, **kws)
346 e.patch_message(msg)
347
--> …Run Code Online (Sandbox Code Playgroud)