generating unique values in python numpy code example

Example 1: return position of a unique value in python array

In [304]: array = np.array([1, 1, 2, 3, 2, 1, 2, 3])

In [305]: np.unique(array)            # unique values in `array`
Out[305]: array([1, 2, 3])

In [306]: array == 1                  # retrieve a boolean mask where elements are equal to 1
Out[306]: array([ True,  True, False, False, False,  True, False, False])

In [307]: (array == 1).nonzero()[0]   # get the `True` indices for the operation above
Out[307]: array([0, 1, 5])

Example 2: return position of a unique value in python array

def partition(array):
  return {i: (array == i).nonzero()[0] for i in np.unique(array)}