Преобразовать кортеж в матрицу Numpy с указанными ниже условиями:
- Форма массива должна быть
len(tuple)
x len(tuple)
, то есть квадратная матрица. - Элементы в массиве в месте, указанном
(index of the element in the tuple, the value of the element in the tuple)
, должны быть равны единице.
Например, у меня есть случайный кортеж, как показано ниже:
# index means row ,value means col
(2,0,1)
Я использую два цикла дляизмените этот кортеж на массив Numpy:
def get_np_represent(result):
two_D = []
for row in range(len(result)):
one_D = []
for col in range(len(result)):
if result[row] == col:
one_D.append(1)
else:
one_D.append(0)
two_D.append(one_D)
return np.array(two_D)
output:
array([[0, 0, 1],
[1, 0, 0],
[0, 1, 0]])
Но у меня есть 10 000 000 таких кортежей, есть ли более быстрый способ?