我不知道该怎么做。考虑一下这句话:
this_size = numba.typed.Dict.empty(key_type=numba.types.float64, value_type=numba.types.float64)我在@numba.jit(nopython = True)。我试着把这句话的价值加起来。但我得到了:
TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Untyped global name 'sum': cannot determine Numba type of <class 'builtin_function_or_method'>
File "trial.py", line 163:
def strat_1(bid_price, ask_price, deal_size, deal_price, posture, post_update, is_out, num_ticks, tick_size, point_value):
<source elided>
BBB[i] = sum(this_size.values())发布于 2020-11-21 08:20:39
看起来sum不在supported built-in functions的列表中(从Numba版本0.51.2开始)。现在,Numba支持一个不断增长但仍然相当有限的vanilla Python和NumPy子集。
Numba确实支持np.sum,尽管我不能说服它接受你的字典的值(它可能需要更多的修改)。我编译它的唯一方法是回退一个普通的for循环:
import numba
import numpy as np
this_size = numba.typed.Dict.empty(key_type=numba.types.float64, value_type=numba.types.float64)
@numba.njit
def my_sum(d):
total = 0.0
for val in d.values():
total += val
return total
print(my_sum(this_size))https://stackoverflow.com/questions/64936311
复制相似问题