Equal probability quantizer in Python
There is any way to assign a a &quot;level/histogram bin&quot; to each pixel without iterating through the entire image?

(emphasis mine)
No, because what you describe is an operation that needs to be applied to each pixel.
Also, a histogram needs to be calculated taking all pixels into account (that's the definition of a histogram!).
Anyway, that's not a problem at all – in SAR processing, this operation is definitely of &quot;a lesser concern&quot; when it comes to computational intensity.

Calculate a list of pixel values sorted by intensity
assign value ranges based on that

Sort the pixels
That's inherently an operation that can't be fully parallelized – in the end, there is one list for the whole image. However, you can parallelize it for the most part: Let your multiple processors (GPU threads, …) sort disjunct parts of the image, then merge the sorted lists in order (and that can be done in cascaded ways, too). Pseudocode:
N := numbers of pixels
I := image considered as linear array of pixels
O := output list of sorted pixel values, same length as I
T := temporary list of list of pixels
P := numbers of processing cores

FOR p IN P PARALLEL:
   T[p][:] := sort(I[p*(N/P) … (p+1)*(N/P)])

merge(T[0…(P-1)])

Quantize
Then, just take the sorted list of values, divide into the desired number of bins of equal size, note down the &quot;starting&quot; value of each bin (i.e. the values at O[0], O[N/n_bins], O[2*N/n_bins]...).
Then, (again, in parallel if desired – there's no data interdependence between pixels) move through your image and replace the pixel values by the bin number.