我有一个简单的函数,该函数返回零和一的矩阵。我不明白line:out [range(n),vec] = 1的工作方式。向量v的值可以从0到9。
import numpy as np
def one_hot_encode(vec, vals=10):
n = len(vec)
out = np.zeros((n, vals))
out[range(n), vec] = 1
return out
v = [1,2,3,1,3,5,7,8,9,1,2,3,4,5,6,7,8,9,0,1,2,3,1,3,5,7,8,9,1,2,3]
one_hot_encode(v, 10)
答案 0 :(得分:1)
该行:out [range(n),vec] = 1放置一个与vec值相对应的行,即,如果vec具有第一个值1,则将在矩阵的第一行和第二列(值+1)中分配为1。如果4rt值为1,则将4rt行和第二列分配为1。