У меня есть массив из 60000 чисел от 0-9:Vectorize эта функция в Python Numpy
In [1]: trainY
Out[1]:
array([[5],
[0],
[4],
...,
[5],
[6],
[8]], dtype=int8)
И у меня есть функция, чтобы преобразовать каждый элемент в trainY
в вектор 10 элемента согласно ниже:
0 -> [1,0,0,0,0,0,0,0,0,0]
1 -> [0,1,0,0,0,0,0,0,0,0]
2 -> [0,0,1,0,0,0,0,0,0,0]
3 -> [0,0,0,1,0,0,0,0,0,0]
...
9 -> [0,0,0,0,0,0,0,0,0,1]
функция:
def transform_y(y):
new_y = np.zeros(10)
new_y[y] = 1
return new_y
Мой код работает только 1 элемент одновременно. Каков наилучший способ преобразования моего массива trainY
сразу (кроме цикла for)? Должен ли я использовать map
? Может ли кто-нибудь показать мне, как переписать функцию так, чтобы она была проиндексирована?
спасибо.
Правда, я даже не читать код ;-) Ваш ответ представляет собой лучшее решение для его настоящего дела, но я держу мину как более общий ответ. – Bruce