python - Numpy - 创建序数类别嵌入
问题描述
我已将以下代码写入one-hot encode
整数列表:
import numpy as np
a = np.array([1,2,3,4])
targets = np.zeros((a.size, a.max()))
targets[np.arange(a.size),a-1] = 1
targets
输出:
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
我想更改代码,以更好地适应我的序数类问题,以便输出为:
array([[1., 0., 0., 0.],
[1., 1., 0., 0.],
[1., 1., 1., 0.],
[1., 1., 1., 1.]])
我怎样才能做到这一点?
解决方案
似乎您需要tril
,这为您提供了下三角形。np.ones()
使用(就像您使用一样)创建一个任意大小的数组np.zeros()
,然后运行它np.tril()
import numpy as np
a = np.array([1,2,3,4])
targets = np.ones((a.size, a.max()))
targets = np.tril(targets)
targets
甚至更简单,使用tri()
import numpy as np
a = np.array([1,2,3,4])
targets = np.tri(a.size, a.max())
targets
推荐阅读
- julia - 为什么不可变类型通过复制传递?
- javascript - 计算对象的新 x 大小
- azure - 我正在尝试从部署后脚本文件中的 ARM 模板读取输出值。你能给我读这些值的语法吗?
- c# - 0 到 9999999999.99 范围内小数的 TextBox 按键事件处理
- android - RXKotlin 你如何映射到 void?
- algorithm - 第 K 个最大的数,为什么它的运行时间是 O(n) 而不是 O(nlogn)
- ffmpeg - FFMPEG 组合两个大小相同但 SAR/DAR 不同的视频?
- macos - 如何根据 shell 脚本的结果在特定用户的主文件夹上运行 rsync?
- node.js - Docker 不会通过更改源代码来构建容器
- css - 调整内联 SVG 大小