作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试重新创建类似于sklearn.preprocessing.LabelEncoder
但是我不想使用 sklearn
或 pandas
。我只想使用 numpy
和 Python 标准库。这是我想要实现的目标:
import numpy as np
input = np.array([['hi', 'there'],
['scott', 'james'],
['hi', 'scott'],
['please', 'there']])
# Output would look like
np.ndarray([[0, 0],
[1, 1],
[0, 2],
[2, 0]])
如果能够将其映射回去也很棒,这样结果就会再次看起来与输入完全一样。
最佳答案
这是一个简单的理解,使用 np.unique
的 return_inverse
arr = np.array([['hi', 'there'], ['scott', 'james'],
['hi', 'scott'], ['please', 'there']])
np.column_stack([np.unique(arr[:, i], return_inverse=True)[1] for i in range(arr.shape[1])])
array([[0, 2],
[2, 0],
[0, 1],
[1, 2]], dtype=int64)
或者沿轴应用:
np.column_stack(np.apply_along_axis(np.unique, 0, arr, return_inverse=True)[1])
关于python - 如何仅使用 numpy(而不是 sklearn LabelEncoder)创建标签编码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60955014/
我是一名优秀的程序员,十分优秀!