任何人都可以帮忙吗? 如果我尝试这个代码,
a = np.array([2,1,5],[2,5,3])
b = np.zeros_like(a)
c=b[np.arange(len(a)), a.argmax()] = 1
print(c)
错误too many Indices for array
我的动机是制作一个列表,除了在输入Numpy数组中最高的列之外,它给我所有列零,并使其为'1'。
输出应该是([0,0,1],[0,1,0])
答案 0 :(得分:0)
代码:
matrix = np.array([[2, 1, 5], [2, 5, 3]])
imax = matrix.argmax(1)
n_labels = np.size(matrix, 1)
onehot = np.eye(n_labels)[imax]
如何运作,逐行:
N
。NxN
矩阵(让我们称之为M
),其中所有值都为零,主对角线除外,它是1.对于步骤2中的每个值i
,从这个新矩阵i
中选择行M
。