gpt4 book ai didi

arrays - 二维 numpy 数组中的最大频率一维数组

转载 作者:行者123 更新时间:2023-12-02 06:37:30 35 4
gpt4 key购买 nike

我有一个二维 numpy 数组:

array([[21, 17, 11],
[230, 231, 232],
[21, 17, 11]], dtype=uint8)

我想找到出现频率更高的一维数组。对于上面的二维数组,它是:[21,17,11]。它类似于统计数据中的模式。

最佳答案

我们可以使用np.unique及其可选参数 return_counts 来获取每个唯一行的计数,最后使用 argmax() 选择具有最大计数的行 -

# a is input array
unq, count = np.unique(a, axis=0, return_counts=True)
out = unq[count.argmax()]

对于uint8类型数据,我们还可以通过将每一行减少为一个标量来转换为1D,然后使用np.unique -

s = 256**np.arange(a.shape[-1])
_, idx, count = np.unique(a.dot(s), return_index=True, return_counts=True)
out = a[idx[count.argmax()]]

如果我们正在处理 3D 的彩色图像(最后一个轴是颜色 channel )并且想要获得最主要的颜色,我们需要使用 a.reshape( -1,a.shape[-1]) 然后将其提供给建议的方法。

关于arrays - 二维 numpy 数组中的最大频率一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52474308/

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