gpt4 book ai didi

python - 压缩Python列表中的所有连续的

转载 作者:行者123 更新时间:2023-12-02 19:25:41 25 4
gpt4 key购买 nike

我有用 0s1s 填充的变量列表,例如:

l1 = [1,1,1,0,1,1]
l2 = [0,1,1,0,1,1,0,0,1]

创建压缩所有连续 1 的新列表的最有效方法是什么。

所以结果是:

l1_new = [1,0,1]
l2_new = [0,1,0,1,0,0,1]

Hint: numpy/vectorization or some logical operation would be great!

最佳答案

这是使用 np.diff 的一种方法和按位运算:

l1 = [1,1,1,0,1,1]
l2 = [0,1,1,0,1,1,0,0,1]

a = np.array(l2)
a[~((np.diff(a,prepend=False)==0) & (a==1))]
# array([0, 1, 0, 1, 0, 0, 1])

或者第一个例子:

a = np.array(l1)
a[~((np.diff(a,prepend=False)==0) & (a==1))]
#array([1, 0, 1])

关于python - 压缩Python列表中的所有连续的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62430679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com