Search code examples
pythonnumpyindices

Can anybody explain me the numpy.indices()?


I've read documentation several times about np.indices() but I can't seem to grasp what is it about. I've used it numerous times on things to see what it does, but I still can't really get it. Maybe the thing is I'm a beginner in programming so I can't understand the idea behind the words describing it. In addition I'm not a native English speaker (though I have no problems with it). I would be very grateful for kind of easier explanation, possibly on some example. Thanks.


Solution

  • Suppose you have a matrix M whose (i,j)-th element equals

    M_ij = 2*i + 3*j
    

    One way to define this matrix would be

    i, j = np.indices((2,3))
    M = 2*i + 3*j
    

    which yields

    array([[0, 3, 6],
           [2, 5, 8]])
    

    In other words, np.indices returns arrays which can be used as indices. The elements in i indicate the row index:

    In [12]: i
    Out[12]: 
    array([[0, 0, 0],
           [1, 1, 1]])
    

    The elements in j indicate the column index:

    In [13]: j
    Out[13]: 
    array([[0, 1, 2],
           [0, 1, 2]])