I have a Python loop that looks like this:
for i in range(n): if (status[i]==-1): <main code>
I’m sure there is a better way to do this – some kind of "where" in the iterator?
The code runs as expected, it is just inefficient and slow. If I have 200000 records and only 30 of them have a status[i]==-1, I don’t want to examine all 200000.
Iterating a Python list is inherently slow. Try some vectorization library as numpy, which is implemented in C and can perform operations like this several hundred times faster. E.g.
import numpy as np arr = np.array(status) x = np.where(arr == -1) print(x)