Я изучаю Python, NumPy и машинное обучение.Я пытаюсь настроить нейронную сеть с нуля, и у меня возникла проблема.
У меня есть несколько выводов, например [[2], [4], [1]]
, и я пытаюсь создать для нее маску, которая будет выглядеть следующим образом
[
[0 0 1 0 0]
[0 0 0 0 1]
[0 1 0 0 0]
]
сейчас я использую следующий код:
tmpY = np.array(Y)
tmp = np.zeros([m, 10])
for i in range (0, m):
index = tmpY[i][0]
tmp[i][index] = 1
Но я думаю, что есть более чистый путь.
Редактировать:
Спасибо, ребята, за вашу помощь.Я думаю, что нашел решение, которое будет работать лучше всего для меня
C = np.array([[0], [2], [4], [2], [4], [1] ,[3], [8], [5], [3], [1], [2]])
np.eye(C.shape[0], np.amax(C) + 1, dtype=int)[C.flatten()]
[[1 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0]
[0 0 1 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0]
[0 1 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0]
[0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 1 0 0 0]
[0 0 0 1 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0]]
Я оставлю это здесь на случай, если кто-то еще будет смотреть его.