我有一个标签数组,表示0-9之间的数字。我想把这个数组转换成一个二进制数组,这样数字就是value = 1的索引。
的例子:
labels = [1, 4, 9]
binary = [
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
]
我已经有一个迭代的解决方案,但我正在寻找一个NumPy解决方案。
一个简单快捷的方法:
>>> labels = [1, 4, 9]
>>> np.eye(10, dtype=int)[labels]
array([[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1]])