1
我是Numba的初學者。對於我的生活,我無法得到一個Numba函數來操縱一個簡單的列表。
哎呀,我甚至不知道如何指定簽名。Numba中Python列表的基本問題;這是怎麼回事?
下面是這個例子。怎麼了? (什麼是「反射清單」?)我該如何解決?
from numba import *
from numba.types import *
@jit(List(int64)(List(int64)), nopython=True)
def foo(a): a[0] += a[0]; return a
foo([1])
給
Traceback (most recent call last):
File "<pyshell#5>", in <module>
foo([1])
File "numba\dispatcher.py", line 219, in _explain_matching_error
raise TypeError(msg)
TypeError: No matching definition for argument type(s) reflected list(int64)
你指定一個簽名的任何特定原因? – user2357112
@ user2357112:是的,我想了解如何在無法自動推斷的地方做到這一點。 – Mehrdad
據我的Google技巧指出,「反射」列表是[在函數執行後在列表中可以看到(反映)JITted函數內部列表的更改](https://github.com/numba/numba /問題/ 1444)。由於我不知道的原因,這被視爲與常規列表不同的類型。你已經告訴Numba你的函數應該採用一個不反映的列表,但是它需要通過將'reflect = True'傳遞給內部'List'調用來獲得一個反射列表。它可能還需要返回一個反射列表。 – user2357112