我有一个形状为(2,2,3)indices
数组,看起来像这样:
array([[[ 0, 6, 12],
[ 0, 6, 12]],
[[ 1, 7, 13],
[ 1, 7, 13]]])
我想使用这些作为索引,将np.zeros
矩阵的一些值设置为1。虽然本例中的最大值是13,但我知道它可以达到18。这就是我创建one_hot = np.zeros((2, 2, 18))
数组的原因:
array([[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]])
使用indices
数组,我希望得到的结果是:
array([[[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]],
[[0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]]])
我想使用numpy的高级索引,类似于:one_hot[indices] = 1
我怎么能那样做呢?
1条答案
按热度按时间nx7onnlm1#
可能的解决方案:
输出量: