python计算数组中出现的所有元素并统计出现次数

本文介绍了一种从文本文件读取数据,统计并排序数据,然后使用matplotlib进行数据可视化的Python编程方法。通过实例演示了如何获取数据集,统计各元素出现频率,并绘制图表展示数据分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 #从文本中获取,并且统计
 2 import matplotlib.pyplot as plt
 3 import numpy as np
 4 
 5 
 6 f = open('TXT/123.txt')
 7 lines = f.readlines()
 8 data = []
 9 
10 for line in lines:
11     data.append(int(line))
12 data = sorted(data)
13 print(data)
14 
15 unique_data = np.unique(data)
16 print(unique_data)
17 
18 resdata = []
19 for ii in unique_data:
20     resdata.append(data.count(ii))
21 print(resdata)
22 
23 fig = plt.figure()
24 plt.plot(unique_data, resdata)
25 plt.show()

 

 

 

y = sorted(y)
print(y) 
#统计出现的元素有哪些
unique_data = np.unique(y)
print(unique_data)

#统计某个元素出现的次数
resdata = []
for ii in unique_data:
resdata.append(y.count(ii))
print(resdata)

 

转载于:https://www.cnblogs.com/miaoqianling/p/11444015.html

### 找到数组中出现频率最高元素的方法 为了实现这一目标,可以采用多种方法。一种有效的方式是在 C 语言环境中通过构建辅助结构来追踪每个元素的出现次数[^2]。 #### 方法一:使用额外空间记录频次 创建一个新的数组 `frequency` 来跟踪原始输入数组 `inputArray` 中每一个不同数值的出现次数。初始时将 `frequency` 数组中的所有位置设为 `-1` 表示尚未访问过的状态。当遍历 `inputArray` 遇到未被处理的新值时,在 `frequency` 对应的位置更新其计数器,标记该索引已被计算过以便后续跳过重复项: ```c #include <stdio.h> #define MAX_SIZE 100 // 假设最大可能的不同整数值不超过此范围 void findMostFrequent(int inputArray[], int size, int n) { int frequency[MAX_SIZE]; for (int i = 0; i < MAX_SIZE; ++i){ frequency[i]=-1; } for (int i=0;i<size;++i){ if(frequency[inputArray[i]]==-1 || frequency[inputArray[i]]==0){ int count=0; for(int j=0;j<size;++j){ if(inputArray[j]==inputArray[i]){ count++; } } frequency[inputArray[i]]=count>0?count:0; } } // 排序输出前N个高频元素... } ``` 这种方法简单直观但效率较低,特别是对于较大的数据集可能会消耗较多时间资源。 #### 方法二:利用哈希表优化性能 更高效的解决方案是借助于哈希映射(Hash Map),它可以提供常量级别的查找速度从而显著提高算法的整体表现。这里以 Python 实现为例展示如何快速定位最频繁出现的 K 个数字[^4]: ```python from collections import Counter def topKFrequent(nums, k): counts = Counter(nums) return [item for item, _ in counts.most_common(k)] ``` 上述代码片段展示了基于内置库函数的一种简洁而高效的方式来解决问题。它首先建立了一个字典形式的数据结构来统计每种数值及其对应的出现次数,接着调用了 `.most_common()` 函数获取排名靠前的结果列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值