1D 配列のインデックスが与えられます。
a = array([1, 0, 3])
これを 2D 配列としてワンホット エンコードします。
b = array([[0,1,0,0], [1,0,0,0], [0,0,0,1]])
ベストアンサー1
b
十分な列数、つまり のゼロ配列を作成しますa.max() + 1
。
次に、各行の番目の列を にi
設定します。a[i]
1
>>> a = np.array([1, 0, 3])
>>> b = np.zeros((a.size, a.max() + 1))
>>> b[np.arange(a.size), a] = 1
>>> b
array([[ 0., 1., 0., 0.],
[ 1., 0., 0., 0.],
[ 0., 0., 0., 1.]])