2021-01-21

算法笔记001: 5种典型数据结构

1. 集合结构:数据元素之间没有需要关注的明确关系,也就是说关系R是空集。这样的数据结构也就是其元素的集合,只是把一组数据元素包装为一个整体。

2. 序列结构:其数据元素之间有一种明确的先后关系(顺序关系)。存在一个排位在最前的元素,除了最后的元素外,每个元素都有一个唯一的后继元素,所有元素排列成一个线性序列。关系R就是这里的线性顺序关系。

3. 层次结构:其数据元素分属于一些不同的层次,一个上层元素可以关联着一个或者多个下层元素,关系R形成一种明确的层次性,只要从上层到下层(通常也允许跨层次)。

4. 树形结构:其特点是在一个树形结构中只有一个最上层数据元素,成为根,其余元素都是根的直接或者间接关联的下层元素。即除根元素之外的每个元素,都有且仅有一个上层元素与之关联。

5. 图结构:数据元素之间可以有任意复杂的相互联系。数学领域的图概念是这类复杂结构的抽象,因此人们把这样的结构称为图结构,把这样的复杂对象称为图对象。

 

出处:裘宗燕,《数据结构与算法:python语言描述》,机械工业出版社,第25页。

你提供的数据是一个典型的空气质量监测数据集,包含日期、AQI 和多种污染物浓度以及污染等级。我们可以基于此数据进行统计分析、可视化或模型训练等操作。 以下是一些可以执行的常见任务和示例代码: --- ### ✅ 1. 数据加载与查看 ```python import pandas as pd # 假设你的数据存储在一个 CSV 文件中 data = pd.read_csv("air_quality_data.csv") # 查看前几行数据 print(data.head()) ``` --- ### ✅ 2. 按污染等级分组统计污染物均值 ```python grouped_stats = data.groupby('污染等级').agg({ 'PM2.5': 'mean', 'PM10': 'mean', 'CO': 'mean', 'NO2': 'mean', 'SO2': 'mean', 'O3_8h': 'mean' }).reset_index() print(grouped_stats) ``` --- ### ✅ 3. 绘制箱线图(Boxplot)比较不同污染等级下的污染物分布 ```python import matplotlib.pyplot as plt import seaborn as sns pollutants = ['PM2.5', 'PM10', 'CO', 'NO2', 'SO2', 'O3_8h'] fig, axes = plt.subplots(2, 3, figsize=(16, 10), dpi=100) axes = axes.flatten() for i, pollutant in enumerate(pollutants): sns.boxplot(x='污染等级', y=pollutant, data=data, ax=axes[i], palette="Set2") axes[i].set_title(f'{pollutant} 分布') axes[i].tick_params(axis='x', rotation=45) plt.tight_layout() plt.show() ``` --- ### ✅ 4. 进行显著性检验(ANOVA 或 Kruskal-Wallis) ```python from scipy.stats import f_oneway, kruskal for pollutant in pollutants: groups = [group[pollutant].values for name, group in data.groupby('污染等级')] # 正态性检验(可选) normality_results = [stats.normaltest(group) for group in groups] p_values_normal = [p for stat, p in normality_results] if all(p > 0.05 for p in p_values_normal): f_stat, p_val = f_oneway(*groups) print(f"污染物 {pollutant}: ANOVA p-value = {p_val:.4f}") else: h_stat, p_val = kruskal(*groups) print(f"污染物 {pollutant}: Kruskal-Wallis p-value = {p_val:.4f}") ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值