您可以使用
np.unique以下
return_inverse参数:
>>> lookupTable, indexed_dataSet = np.unique(dataSet, return_inverse=True)>>> lookupTablearray(['george', 'greg', 'kevin'], dtype='<U21')>>> indexed_dataSetarray([2, 1, 0, 2])
如果愿意,可以从以下两个数组重建原始数组:
>>> lookupTable[indexed_dataSet]array(['kevin', 'greg', 'george', 'kevin'], dtype='<U21')
如果使用熊猫,
lookupTable, indexed_dataSet =pd.factorize(dataSet)将实现相同的效果(对于大型阵列,可能会更有效)。



