检查最后n个元素在Numpy Array Python中相等



我有一个带有数字的numpy数组,我想计算从最后一个元素开始有多少元素相等。

A = [1, 3, 2, 2, 0, 3, 2, 2, 2, 2]

那么我希望返回值为 4(最后四个元素相等(

print(np.argmax(A[::-1] != A[-1]))

我不确定当 A 超大时它的表现如何。在这种情况下,简单的 for 循环会更好。

注意:为什么这可以通过文档中的以下行来理解:

如果多次出现最大值,则返回与第一次出现对应的索引。


感谢 YSelf 的指正。

对于您希望只有几个项目相同的大型数组,具有next的生成器表达式可能很有效:

A = np.array([1, 3, 2, 2, 0, 3, 2, 2, 2, 2])
last = A[-1]
res = next(i for i, j in enumerate(A[::-1]) if j != last)
# 4

最新更新