我有一个从 0 到 9 的 60,000 个数字的数组:
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
吗?有人还可以告诉我如何重新编写函数以便将其矢量化吗?
谢谢你。