gpt4 book ai didi

python - 在 numpy 数组中查找 False-True 转换

转载 作者:太空狗 更新时间:2023-10-30 00:47:39 31 4
gpt4 key购买 nike

给定一个 numpy 数组:

x = np.array([False, True, True, False, False, False, False, False, True, False])

如何找到值从 False 转换为 True 的次数?对于上面的示例,答案是 2。我不想在计数中包括从 True 到 False 的转换。

来自 How do I identify sequences of values in a boolean array? 的答案,以下生成值将要更改的索引,这不是我想要的,因为这包括 True-False 转换。

np.argwhere(np.diff(x)).squeeze()
# [0 2 7 8]

我知道这可以通过遍历数组来完成,但是我想知道是否有更快的方法来做到这一点?

最佳答案

获取一次性切片 - x[:-1](从第一个元素开始到倒数第二个元素结束)和 x[1:](开始从第二个元素一直持续到最后),然后寻找第一个切片小于第二个切片,即捕获 [False, True] 的模式,最后使用 ndarray.sum()np.count_nonzero() -

(x[:-1] < x[1:]).sum()
np.count_nonzero(x[:-1] < x[1:])

另一种方法是寻找第一个切片为 False,第二个切片为 True,同样的想法是捕捉 [False , 真] -

(~x[:-1] & x[1:]).sum()
np.count_nonzero(~x[:-1] & x[1:])

关于python - 在 numpy 数组中查找 False-True 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47750593/

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