python - 删除 numpy 数组中第一次出现的元素

标签 python arrays numpy

我有一个 numpy 数组:

a = np.array([-1,2,3,-1,5,-2,2,9])

我只想在数组中保留出现次数超过 2 次的值,所以结果应该是:

a = np.array([-1,2,-1,2])

有没有办法只使用 numpy 来做到这一点? 我有一个使用字典和字典过滤的解决方案,但这有点慢,我想知道是否有仅使用 numpy 的更快的解决方案。

谢谢!

最佳答案

import numpy as np
a = np.array([-1, 2, 3, -1, 5, -2, 2, 9])
values, counts = np.unique(a, return_counts=True)
values_filtered = values[counts >= 2]
result = a[np.isin(a, values_filtered)]
print(result)  # return [-1 2 -1 2]

关于python - 删除 numpy 数组中第一次出现的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74840692/

相关文章:

arrays - Ruby - 是找到两个非常大的数组之间差异的有效方法吗?

在没有任何标准库的情况下清除 C 中的字符数组

python - 从 Dataframe 中新列的索引中提取数据

python - 按部分比较python中的两个numpy数组

python - 无法让 tensorflow 建立一个甚至可以匹配非常简单的线性图的模型

PHP数组和内存分配

python - 解包元组列表的 dask 延迟对象

python - python flask OIDC 应用程序的 flask-OIDC 替代品

python - 不明白这个用于获取列表列表中最小值的解决方案是如何工作的

python - 将 python ndarray 转换为 matlab 矩阵