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)) print(convert(a))
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.