I'm encountering a problem that I hope you can help me solve.
I have a 2D numpy array which I want to divide into bins by value. Then I need to know the exact initial indices of all the numbers in each bin.
For example, consider the matrix
    [[1,2,3], [4,5,6], [7,8,9]]
and the bin array
    [0,2,4,6,8,10].
Then the element first element ([0,0]) should be stored in one bin, the next two elements ([0,1],[0,2]) should be stored in another bin and so on. The desired output looks like this:
    [[[0,0]],[[0,1],[0,2]],[[1,0],[1,1]],[[1,2],[2,0]],[[2,1],[2,2]]]
Even though I tried several numpy functions, I'm not able to do this in an elegant way. The best attempt might be
    >>> a = [[1,2,3], [4,5,6], [7,8,9]]
    >>> bins = [0,2,4,6,8,10]
    >>> bin_in_mat = np.digitize(a, bins, right=False)
    >>> bin_in_mat
    array([[1, 2, 2],
           [3, 3, 4],
           [4, 5, 5]])
    >>> indices = np.argwhere(bin_in_mat)
    >>> indices
    array([[0, 0],
           [0, 1],
           [0, 2],
           [1, 0],
           [1, 1],
           [1, 2],
           [2, 0],
           [2, 1],
           [2, 2]])
but this doesn't solve my problem. Any suggestions?