-
泛舟湖上清波郎朗
您的数组a定义输出数组中非零元素的列。您还需要定义行,然后使用花式索引:>>> a = np.array([1, 0, 3])>>> b = np.zeros((3, 4))>>> b[np.arange(3), a] = 1>>> barray([[ 0., 1., 0., 0.], [ 1., 0., 0., 0.], [ 0., 0., 0., 1.]])
-
缥缈止盈
>>> values = [1, 0, 3]>>> n_values = np.max(values) + 1>>> np.eye(n_values)[values]array([[ 0., 1., 0., 0.], [ 1., 0., 0., 0.], [ 0., 0., 0., 1.]])
-
qq_遁去的一_1
这是我觉得有用的东西:def one_hot(a, num_classes): return np.squeeze(np.eye(num_classes)[a.reshape(-1)])这里num_classes代表你拥有的课程数量。因此,如果你有一个a形状为(10000,)的向量,这个函数将它转换为(10000,C)。注意,它a是零索引的,one_hot(np.array([0, 1]), 2)即将给出[[1, 0], [0, 1]]。我相信你究竟想拥有什么。