我有一个 numpy 数组
z = array(['Iris-setosa', 'Iris-setosa', 'Iris-setosa', 'Iris-setosa','Iris-versicolor', 'Iris-versicolor', 'Iris-versicolor','Iris-virginica', 'Iris-virginica', 'Iris-virginica'])
我要替换
Iris-setosa -0
Iris-versicolor - 1
Iris-virginica - 2
应用逻辑回归。
最终输出应该是这样的
z = [ 0, 0 ,.. 1,1,.. 2,2,..]
有没有一种简单的方法来执行此操作,而不是遍历数组并使用替换命令?
最佳答案
使用factorize
:
a = pd.factorize(z)[0].tolist()
print (a)
[0, 0, 0, 0, 1, 1, 1, 2, 2, 2]
或numpy.unique
:
a = np.unique(z, return_inverse=True)[1].tolist()
print (a)
[0, 0, 0, 0, 1, 1, 1, 2, 2, 2]
关于python - 用数字替换字符串 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48852930/