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
か? 誰かが関数を書き直してベクトル化する方法を教えてもらえますか?
ありがとうございました。