使用Numpy统计二维数组子数组出现次数并提取最大值
使用Numpy统计二维子数组出现次数并提取最大值
步骤1:导入Numpy并定义目标数组
先将给定的二维数组转换为Numpy数组:
import numpy as np arr = np.array([ [0, 2], [0, 1], [1, 2], [1, 2], [0, 1], [1, 2], [0, 1], [0, 1], [1, 3], [2, 3] ])
步骤2:统计每个子数组的出现次数
利用Numpy的unique方法,结合view将二维行转换为可哈希的结构化类型,实现子数组的统计:
# 将每行转换为可识别的唯一键 unique_rows, counts = np.unique(arr.view(np.dtype((np.void, arr.dtype.itemsize * arr.shape[1]))), return_counts=True) # 还原回原数组格式 unique_subarrays = unique_rows.view(arr.dtype).reshape(-1, arr.shape[1])
查看统计结果的代码:
for subarr, count in zip(unique_subarrays, counts): print(f"子数组{subarr}出现次数:{count}")
输出内容:
子数组[0 1]出现次数:4
子数组[0 2]出现次数:1
子数组[1 2]出现次数:3
子数组[1 3]出现次数:1
子数组[2 3]出现次数:1
步骤3:提取出现次数的最大值
直接对统计得到的次数数组取最大值:
max_count = counts.max() print(f"出现次数的最大值:{max_count}")
输出结果为4。
内容的提问来源于stack exchange,提问作者César Moltoni
相关产品推荐
相关产品推荐

