Python 字符串中的一个热点-获取unique列表中的索引

Python 字符串中的一个热点-获取unique列表中的索引,python,numpy,one-hot-encoding,Python,Numpy,One Hot Encoding,有没有一种从字符串数组中提取索引的便捷方法?我想用NumPy做一个简单的单键编码。我有一种自己编码的方法,但是首先我需要一个索引列表来编码 获取排序后的唯一元素很简单 >>> vals = np.array(['a', 'b', 'c', 'b', 'a']) >>> uniq = np.unique(vals) array(['a', 'b', 'c'], dtype='<U1') 但这会产生一个nd数组 对于预期产量: [0, 1, 2, 1, 0

有没有一种从字符串数组中提取索引的便捷方法?我想用NumPy做一个简单的单键编码。我有一种自己编码的方法,但是首先我需要一个索引列表来编码

获取排序后的唯一元素很简单

>>> vals = np.array(['a', 'b', 'c', 'b', 'a'])
>>> uniq = np.unique(vals)
array(['a', 'b', 'c'], dtype='<U1')
但这会产生一个nd数组

对于预期产量:

[0, 1, 2, 1, 0]

设置
return\u inverse=True

vals = np.array(['a', 'b', 'c', 'b', 'a'])
u, indices = np.unique(vals, return_inverse=True)

print(u)  # ['a' 'b' 'c']
print(indices)  # [0 1 2 1 0]

那么,您的预期输出是什么?一个热门还是分类编码?你的标题和问题说明了不同的事情。如果是编码,那么添加一个
return\u inverse=True
arg:
u,i=np.unique(vals,return\u inverse=True)
取决于你为什么需要它,你也可以查看sklearn的。谢谢!出人意料的简单,在第一次阅读文档时,我并没有完全理解相反的意思。
vals = np.array(['a', 'b', 'c', 'b', 'a'])
u, indices = np.unique(vals, return_inverse=True)

print(u)  # ['a' 'b' 'c']
print(indices)  # [0 1 2 1 0]