在numpy数组上应用Counter获取列模式

我有3个numpy数组

import numpy as np

a=np.array([1,2,4,4])
b=np.array([1,3,4,3])
c=np.array([1,2,3,3])

我需要这样的输出

array([1,2,4,3])

其中,索引i处的值在该列中出现频率最高的元素,即。

  • 在第一列中,1出现的次数最多。
  • 在第二列中 2出现的次数最多。

以此类推…

解决方案:

你可以使用 Counter 以如下方式。

from collections import Counter
result = []
for i,_ in enumerate(zip(a,b,c)):
  count = Counter([a[i], b[i], c[i]])
  result.append(count.most_common(1)[0][0])

result 将给 [1,2,4,3].

给TA打赏
共{{data.count}}人
人已打赏
未分类

为什么我只传递了一个参数就得到一个TypeError?

2022-9-8 22:11:27

未分类

Azure DevOps API - 更新测试用例自动化状态

2022-9-8 22:11:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索