Numpy:将标签转换为索引

时间:2018-05-02 07:56:31

标签: python pandas numpy classification data-science

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

假设我有一个像['ABC', 'DEF', 'GHI', 'DEF', 'ABC']等字符串数组。我希望将它更改为像[0,1,2,1,0]这样的整数数组。是否有可能使用numpy?我知道Pandas有一个Series类可以做到这一点,由this answer提供。 numpy也有类似的内容吗?

编辑:  np.unique()返回所有元素的唯一值。我要做的是将Iris dataset中的标签转换为索引,例如Iris-setosa为0,Iris-versicolor为1,Iris-virginica为2。有没有办法使用numpy

执行此操作

1 个答案:

答案 0 :(得分:3)

numpy.unique与参数return_inverse=True一起使用,但处理NaN时存在差异 - 请检查factorizing values

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]