python – Creating nxm index list of array a

Here is the problem:

Given a numpy array ‘a’ that contains n elements, denote by b the set
of its unique values ​​in ascending order, denote by m the size of
array b. You need to create a numpy array with dimensions n×m , in
each row of which there must be a value of 1 in case it is equal to
the value of the given index of array b, in other places it must be 0.

import numpy as np

def convert(a):
    b = np.unique(sorted(a))
    result = ()
    for i in a:
        result.append((b == i) * 1)
    return np.array(result)

a = np.array((1, 1, 2, 3, 2, 4, 5, 2, 3, 4, 5, 1, 1))

This is my solution. is there some improvments that I can make?
I’m not sure about declaring regular list to the result and then converting it into np.array.