Numpy:将标签转换为索引
Posted
技术标签:
【中文标题】Numpy:将标签转换为索引【英文标题】:Numpy : convert labels into indexes 【发布时间】:2018-10-12 06:28:09 【问题描述】:是否可以使用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】:使用numpy.unique
和参数return_inverse=True
,但处理NaN
s 有区别 - 检查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]
【讨论】:
以上是关于Numpy:将标签转换为索引的主要内容,如果未能解决你的问题,请参考以下文章
将具有 n 级分层索引的 Pandas DataFrame 转换为 n-D Numpy 数组
将 2D numpy 数组重塑为 3 个具有 x,y 索引的 1D 数组
numpy array TypeError:只有整数标量数组可以转换为标量索引