IIUC - and I'm not sure I know - you could use arange and live comparisons:
>>> v = np.array([0,1,3,2]) >>> np.arange(5) < v[...,None] array([[False, False, False, False, False], [ True, False, False, False, False], [ True, True, True, False, False], [ True, True, False, False, False]], dtype=bool)
or in 2D:
>>> v = np.array([[1,2],[0,2]]) >>> np.arange(5) < v[...,None] array([[[ True, False, False, False, False], [ True, True, False, False, False]], [[False, False, False, False, False], [ True, True, False, False, False]]], dtype=bool) >>> ((np.arange(5) < v[...,None]).sum(2) == v).all() True