gpt4 book ai didi

python - 在 numpy 数组中查找两个数字的指定匹配项的所有匹配项

转载 作者:行者123 更新时间:2023-11-28 22:33:53 28 4
gpt4 key购买 nike

我需要实现的是获取所有索引的数组,其中在我的数据数组中填充了零和一个是从零到一的步骤。我需要非常快速的解决方案,因为我必须处理数百万个 hundrets milions 长度的数组。它将在计算中心运行。例如..

data_array = np.array([1,1,0,1,1,1,0,0,0,1,1,1,0,1,1,0])
result = [3,9,13]

最佳答案

试试这个:

In [23]: np.where(np.diff(a)==1)[0] + 1
Out[23]: array([ 3, 9, 13], dtype=int64)

100M 元素数组的时序:

In [46]: a = np.random.choice([0,1], 10**8)

In [47]: %timeit np.nonzero((a[1:] - a[:-1]) == 1)[0] + 1
1 loop, best of 3: 1.46 s per loop

In [48]: %timeit np.where(np.diff(a)==1)[0] + 1
1 loop, best of 3: 1.64 s per loop

关于python - 在 numpy 数组中查找两个数字的指定匹配项的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476430/

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