gpt4 book ai didi

python - 计算数组中条件出现的次数

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:14 24 4
gpt4 key购买 nike

我有一个以下形式的二维数组:np.zeros((m,n))。我的目标是查看前两列,我想找到第一列中出现次数最多的元素(因此第一列的众数),但是如果第二列是,我不想将其计数两次一样的。

5x3 示例:

[[1 2 x], [1 2 y], [1 3 z], [5 3 w], [5 6 v], [9 2 x], [9 2 y],]

期望的输出,即出现的次数:

[1]: 2
[5]: 2
[9]: 1

因此,在某种程度上,它是一个计数器函数,但以第二个数组(第 2 列)为条件。

我对 Python 比较陌生,有没有一个函数可以直接且高效地完成此操作?我需要在非常大的矩阵上运行它,但找不到这样的函数。

最佳答案

这个功能可以解决您的问题。

def count_special(arr):
counter = {}
for i in np.unique(arr[:,0]):
sec = arr[arr[:,0]==i,1]
counter[i] = len(np.unique(sec))
return counter

对于您的输入,返回:

arr = np.array([[1,2,0],[1,2,4],[1,3,4],[5,3,1],[5,6,0]])
print(count_special(arr))

-> {1:2, 5:2}

关于python - 计算数组中条件出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43871132/

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