首页 文章

将numpy索引数组展开为matix

提问于
浏览
1

我有一个n个整数的numpy数组,范围从0到M(含) . 我希望将它们作为索引处理成NxM矩阵,该矩阵在数组指示的每个位置包含1,在其他地方包含0 . 例如,如果给定N = 4,则M = 2,我具有以下数组

[1, 0, 2, 1]

我想得到这个矩阵

[0 1 0]
[1 0 0]
[0 0 1]
[0 1 0]

即,第0行在第1列中有1,第1行在第0列中有1,等等 .

如何在numpy中进行这种转换?

1 回答

  • 2

    这需要multi-dimensional array indexing .

    a = np.array([1, 0, 2, 1])
    z = np.zeros(12, dtype=int).reshape(4,3)
    z[np.arange(a.size), a] = 1
    

相关问题