将numpy数组中的整数转换为连续范围0…n

2024-06-16 09:09:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将numpy数组中的任意整数转换为连续范围0…n,如下所示:

source: [2 3 4 5 4 3]
translating [2 3 4 5] -> [0 1 2 3]
target: [0 1 2 3 2 1]

必须有比以下更好的方法:

^{2}$

这是什么?在


Tags: 方法numpysourcetarget整数数组translating
2条回答

IIUC您可以简单地使用^{}的可选参数return_inverse,如下-

np.unique(source,return_inverse=True)[1]

样本运行-

^{pr2}$

^{}是一种方法:

import pandas as pd

lst = [2, 3, 4, 5, 4, 3]
res = pd.factorize(lst, sort=True)[0]

# [0 1 2 3 2 1]

注意:这将返回一个列表,而np.unique将始终返回一个np.ndarray。在

相关问题 更多 >