python - numpy 中矩阵的 One-hot 表示

标签 python numpy argmax

从值矩阵转换为 3d 张量中同一事物的一个热表示的最简单/最智能的方法是什么?例如,如果矩阵是张量中 argmax 之后的索引,例如:

indices=numpy.argmax(mytensor,axis=2)

其中张量是 3D [x,y,z],索引自然是 [x,y]。现在您想要访问一个 3D [x,y,z] 张量,该张量在 axis=2 中的最大值处用 1 代替,在任何其他位置处用 0 代替。

附注我知道向量到 1-hot 矩阵的答案,但这是矩阵到 1-hot 张量。

最佳答案

最适合使用的设置之一 broadcasting -

indices[...,None] == np.arange(mytensor.shape[-1])

如果您需要 0s1s 的整数,请附加 .astype(int)

关于python - numpy 中矩阵的 One-hot 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41513252/

相关文章:

python - 通过最小值和最大值快速过滤 Python 数组中的元素

python - torch.argmax() 无法在包含数据的张量中找到最大值

python - 如何获取 4d numpy 数组中 2d 最大值的索引

python - 将 pandas 数据框转换为 NumPy 数组

python - 几秒钟后 Subprocess.Popen 停止(或出现故障)

python - 如何将循环结果放入列表中?

python - 使用来自另一个数据框的合并填充 na 值

python - cvtColor() 转换为 LAB 颜色空间后的 Numpy 8 位和 32 位图像数据类型

python - 在 Pandas 中查找轴上 N 个最大值的索引

python - sklearn 中字母的 N 元语法