I have a simple function to rank poker hands (the hands are strings).
I call it with rA,rB = rank(a),rank(b)
and here is my implementation. Works well witho
Pandas and several other function calls in your code will not work with nopython=True
. The available libraries that can be used with numba jit in nopython is fairly limited (pretty much only to numpy arrays and certain python builtin libraries). You can find more information here
Per the deprecation recommendations, it's very reasonable that code which doesn't compile with @jit(nopython=True)
could be faster without the decorator.
Anecdotally, I found the trivial example I landed here researching was notably faster when simply passing the Pandas columns directly to my function to vectorize the operation, rather than using numba and paying the method overhead of the columns for a numpy array.
However, it continues with the expected argument to clear this warning
If there is benefit to having the
@jit
decorator present, then to be future proof supply the keyword argumentforceobj=True
to ensure the function is always compiled in object mode.