我想计算一个numpy数组中的间隔数。在这个例子中,连续的零算作一个间隔。
array = np.array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692, 1692, 1692, 1692, 1692, 1692, 1692, 2458, 2458, 2458, 2458,
2458, 2458, 2458, 0, 0, 0, 3956, 3956, 3956, 3956, 3956,
3956, 3956, 0, 0, 0, 0, 5431, 5431, 5431, 5431, 5431,
5431, 5431, 0, 0, 0, 0, 0, 0, 0, 0, 0])
在上面的数组中有4个间隙,所以我的输出应该是4。
2条答案
按热度按时间fnx2tebb1#
您可以使用布尔数组,并在前一个值为False时计算为True的值:
输出:
4
mm9b1k5b2#
请查看已接受答案的优化版本(速度快2.5倍)。它之所以快,是因为不需要连接(
np.r_
)numpy数组对比: