numpy:将标签转换为索引

Spo*_*rat 4 python numpy classification pandas data-science

是否可以使用将字符串向量转换为索引向量numpy

假设我有一个字符串数组,例如['ABC', 'DEF', 'GHI', 'DEF', 'ABC']etc。我希望将其更改为一个整数数组,例如[0,1,2,1,0]。是否可以使用numpy?我知道Pandas有一个Series班级可以做到这一点,这要归功于这个答案。还有类似的东西numpy吗?

编辑: np.unique()返回所有元素的唯一值。我正在试图做的是转换标签的虹膜数据集,以指数,如0 Iris-setosa为,1 Iris-versicolor和2 Iris-virginica分别。有没有办法做到这一点numpy

jez*_*ael 5

numpy.unique与参数一起使用return_inverse=True,但处理NaNs 有所不同-检查分解因子值

L = ['ABC', 'DEF', 'GHI', 'DEF', 'ABC']

print (np.unique(L, return_inverse=True)[1])
[0 1 2 1 0]
Run Code Online (Sandbox Code Playgroud)

熊猫也factorize很好地使用列表或数组:

print (pd.factorize(L)[0])
[0 1 2 1 0]
Run Code Online (Sandbox Code Playgroud)