有人可以向我解释这个简单的Python代码吗?

时间:2019-02-18 12:54:33

标签: python numpy

我有一个简单的函数,该函数返回零和一的矩阵。我不明白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)

1 个答案:

答案 0 :(得分:1)

该行:out [range(n),vec] = 1放置一个与vec值相对应的行,即,如果vec具有第一个值1,则将在矩阵的第一行和第二列(值+1)中分配为1。如果4rt值为1,则将4rt行和第二列分配为1。