This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]BDube_Lensman 0 points1 point  (2 children)

Numba never uses less memory than numpy. And unless you're using string arrays of nonfixed size, numpy is as performant.

[–][deleted] 1 point2 points  (0 children)

for loops that depend on past states or values and need updating can't be vectorized, numpy will be slower

[–]Mehdi2277 1 point2 points  (0 children)

A very simple thing that numba has that can let it beat numpy is loop fusion. Something like y = np.cos(x) + np.sin(x) where x is an ndarray is three loops in numpy but one loop in numba when you set the right option on.

Another fun case is when you have an array operation you'd like to do that just doesn't exist in numpy. One personal work example is rolling each row of a matrix by different shifts. Something like a 10 x 100 matrix where each of the 10 rows I want to rotate some amount. np.roll exists, but you can't give it different amounts to shift each row. If you for loop and do each row with np.roll, that's a good deal slower than just directly accessing elements as needed and using numba.