前提・実現したいこと
numbaをnopython=Trueで使用したいが、引数の指定の仕方がよくわからない。
試したこと
下記URLを参考に、書いてみたがTypeErrorが発生
https://yutori-datascience.hatenablog.com/entry/2014/12/10/123157
使用している言語・ブラウザ
windows 10
python3.7
anaconda
該当のソースコード
python
1from numba import jit 2 3 4List1 = [100,200,300,400,500] 5List2 = ["aaa","bbb","ccc",111,222,333] 6 7@jit('i1[:]','i1[:]',nopython=True) 8def Prediction(CountList1,CountList2): 9 for item1 in CountList1: 10 print(item1) 11 for item2 in CountList2: 12 print(item2) 13 14 return "終了" 15 16print(Prediction(List1,List2))
#エラーメッセージ
TypeError: invalid signature: 'i1[:]' (type: 'str') evaluates to 'Array' instead of tuple or Signature
回答いただけますと幸いです。
どうぞよろしくお願いいたします
nopython=Trueを使用したいだけなら、signatureは必須ではないので、分からないなら指定しなくていいです。
初回の呼び出し時に型に合わせてコンパイルされます。
が、今回書かれているコードでは、numpyのarrayではなくリスト(しかも数値と文字列の混ざったもの)を使っていたり、jitの対象の関数がprintして文字列を返すという高速化できない関数だったりして、numbaを使う意味がないものになっているため、アドバイスも難しいです。
一番知りたいこと、やりたいことはなんでしょうか?
回答ありがとうございます。
numbaの対象が、numpyのarrayのみであることを理解できていませんでした。
jitを用いてpythonを高速化したかったのですが、numbaの機能の対象外であるということですね。
arrayのみということはないです。下記のページが参考になると思います。
https://ikatakos.com/pot/programming/python/packages/numba
ありがとうございます、参考します!