python - 仅查找 numpy 数组末尾的重复项数量

标签 python arrays numpy duplicates

我知道如何从 numpy 数组中找到重复项的数量。 但是,我需要仅在 numpy 数组的末尾查找重复项的数量。 请参阅下面我的示例:

输入示例如下:

1995
1996
1996
1997
1998
1999
1999
1999

期望的输出:

3

提前致谢!

最佳答案

这是 np.minimum.accumulate 的一种方法-

np.minimum.accumulate(a[::-1]==a[-1]).sum()

示例运行 -

In [64]: a
Out[64]: array([2, 1, 9, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 1, 0, 9, 9, 9, 9, 9])

In [73]: np.minimum.accumulate(a[::-1]==a[-1]).sum()
Out[73]: 5

另一个带有 argmin -

In [88]: (a[::-1]==a[-1]).argmin()
Out[88]: 5

对于极端情况,如果所有元素都相同,我们可能需要一个额外的步骤来检查 a[::-1]==a[-1] 上的所有 匹配项 并在这种情况下返回len(a)。或者,如果计数为 0,这不能作为输出,我们将输出 len(a)

关于python - 仅查找 numpy 数组末尾的重复项数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62312111/

相关文章:

javascript - 在 javascript 中为数组创建函数。

c# - 如何将 0 和 1 的字符串转换为 bool 数组

c++ - C++中数组的长度

python - matplotlib.scatter() 不能在 Python 3.6 上使用 Numpy

python - 调整存储在数组中的所有图像的大小

python - 有没有一种(简单的)方法可以在 Python 中解析 CRL?

python - python 多处理的内存使用情况

python - Numba 中的稀疏矩阵

python - 如何在 try ... except 中捕获异常后继续循环

python - MongoDB 文档中的过滤器数组