快速的方式将拆分列表扩展到索引列表

问题描述 投票:0回答:1

given索引拆分列表

T
长度
M + 1
,其中第一个元素是
0
,最后一个元素是
N
,生成一个长度
D
的数组
N
,例如,给定
D[T[i]:T[i+1]] = i

,然后返回

T = [0, 2, 5, 7]

。
我试图避免循环,但我能做的最好的是:
D = [0, 0, 1, 1, 1, 2, 2]
是为此目的的内置功能吗?

您可以结合
def expand_split_list(split_list):
    return np.concatenate(
        [
            np.full(split_list[i + 1] - split_list[i], i)
            for i in range(len(split_list) - 1)
        ]
    )

python algorithm numpy
1个回答
0
投票
diff

repeat
输出:
n = np.diff(T) out = np.repeat(np.arange(len(n)), n)

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.