【问题标题】:Python Numpy One Hot to RegionsPython Numpy One 热门地区
【发布时间】:2017-08-18 11:18:21
【问题描述】:

制作这个 One Hot 编码矩阵的最佳方法是什么

array([[[1, 0, 0],
        [1, 0, 0],
        [0, 1, 0]],

       [[0, 0, 1],
        [0, 1, 0],
        [1, 0, 0]]])

作为

array([[0, 0, 1],
       [2, 1, 0]])

也就是说,如何解码 One Hot 数组?

【问题讨论】:

  • 你能解释一下这背后的逻辑是什么吗? “解码”是什么意思?
  • @kmario23 One Hot 编码的反向操作。这个问题已经在下面回答了。
  • 我写了一个矩阵,它被编码为 One Hot,以及下面的第二个矩阵,它是从 One Hot 反转回来的。我只需要代码来执行此操作。

标签: python python-2.7 python-3.x numpy one-hot-encoding


【解决方案1】:

使用np.argmaxaxis=2 -

a.argmax(2)

示例运行 -

In [186]: a
Out[186]: 
array([[[1, 0, 0],
        [1, 0, 0],
        [0, 1, 0]],

       [[0, 0, 1],
        [0, 1, 0],
        [1, 0, 0]]])

In [187]: a.argmax(2)
Out[187]: 
array([[0, 0, 1],
       [2, 1, 0]])

【讨论】:

  • 可能有更快的东西...... argmax 在到达索引时无法提前停止。
  • argmax 在布尔数组的第一个 true 处停止,但我认为这不会影响整数数组。但是,如果您无论如何都必须转换为 bool,则可能是洗了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 2018-04-18
  • 1970-01-01
  • 2016-02-14
相关资源
最近更新 更多