Numpy:将标签转换为索引

7

有没有可能使用numpy将字符串向量转换为索引向量?

假设我有一个字符串数组,如['ABC','DEF','GHI','DEF','ABC']等。 我想将其更改为整数数组,例如[0,1,2,1,0]。 使用numpy可以实现吗? 我知道Pandas有一个Series类可以做到这一点,来源于this answer。 是否也有类似于numpy的东西?

编辑: np.unique()返回所有元素的唯一值。 我正在尝试将Iris数据集中的标签转换为索引,例如Iris-setosa的0,Iris-versicolor的1和Iris-virginica的2。 有没有办法使用numpy来实现这一点?

1个回答

11

使用带有参数return_inverse=Truenumpy.unique,但是处理NaN时会有不同 - 请查看因子化值

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

print (np.unique(L, return_inverse=True)[1])
[0 1 2 1 0]

pandas factorize也可以很好地处理列表或数组:

print (pd.factorize(L)[0])
[0 1 2 1 0]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接