信息科技· 第4章 数据处理与可视化
4.1知识点 · 课时

用 Python 处理数据

了解大数据的基本概念与特征,学会用 Python 处理一组数据。

大数据:数据时代的背景

在动手编程之前,先了解一个重要概念——大数据(Big Data)。这既是时代背景,也是考试常见考点。

什么是大数据

大数据是指无法用常规软件工具在合理时间内进行采集、管理和处理的数据集合——数据量巨大、类型复杂,需要专门的技术来处理。

简单说:数据量大到传统方法处理不了,就是大数据

大数据的特征(考试重点)

大数据通常用 "4V" 来描述其特征,这是选择题的高频考点:

特征英文含义例子
大量Volume数据量巨大全球每天产生数百万 TB 数据
多样Variety数据类型多文字、图片、视频、传感器数据……
高速Velocity产生和处理速度快直播实时弹幕、股票实时行情
价值Value单条数据价值低,但整体价值高一条浏览记录不值钱,亿万条能训练推荐算法

考试技巧:看到"数据量大"选 Volume,看到"类型丰富"选 Variety,看到"实时/快"选 Velocity,看到"价值密度低"选 Value。

大数据与日常生活的关系

大数据就在你身边:

  • 短视频推荐:抖音用你的观看数据(大数据)推荐感兴趣的内容
  • 导航避堵:高德地图用所有用户的实时位置数据(大数据)计算拥堵
  • 精准广告:电商平台用你的浏览和购买数据(大数据)推送商品
  • 疫情防控:健康码用所有人的出行数据(大数据)做流调

大数据的核心价值:从海量数据中发现规律,辅助决策。这正是我们学信息科技、学编程的意义——掌握处理数据的能力。


从"手动算"到"编程算"

回想一下:第一章你手动记录了一周屏幕时间,第二章用「数字习惯分析器」算了均值和峰值。那个工具背后的逻辑是什么?现在我们用 Python 代码自己实现。

用列表存储一组数据

第三章我们学过列表。现在用它存一周的屏幕时间:

# 一周的屏幕时间(小时)
screen_time = [3.5, 4.2, 3.8, 5.1, 6.5, 8.2, 7.6]
days = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]

两个列表,一个存数据,一个存标签——这是数据处理的基本做法。

用 Python 计算统计量

Python 内置了几个统计函数,不用自己写循环:

函数作用例子
sum()求总和sum(screen_time)38.9
len()元素个数len(screen_time)7
max()最大值max(screen_time)8.2
min()最小值min(screen_time)3.5

有了这些,计算平均值就很简单:

screen_time = [3.5, 4.2, 3.8, 5.1, 6.5, 8.2, 7.6]

total = sum(screen_time)        # 总和: 38.9
count = len(screen_time)        # 个数: 7
average = total / count         # 平均: 5.56

print("总屏幕时间:", total, "小时")
print("日均:", round(average, 1), "小时")    # round() 保留 1 位小数
print("最高:", max(screen_time), "小时")
print("最低:", min(screen_time), "小时")

输出:

总屏幕时间: 38.9 小时
日均: 5.6 小时
最高: 8.2 小时
最低: 3.5 小时

对比第二章的「数字习惯分析器」——它算的均值、峰值,你现在用 4 行 Python 就能实现。这就是编程处理数据的能力。

用循环找"哪天最多"

max() 能告诉你最大值是 8.2,但不告诉你是哪一天。用循环 + 判断可以找到:

screen_time = [3.5, 4.2, 3.8, 5.1, 6.5, 8.2, 7.6]
days = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]

max_value = max(screen_time)     # 先找到最大值
for i in range(len(screen_time)):
    if screen_time[i] == max_value:
        print("屏幕时间最长的是", days[i], ",", max_value, "小时")

输出:屏幕时间最长的是 周六 , 8.2 小时

数据排序

sorted() 函数可以对列表排序(不改原列表,返回新列表):

screen_time = [3.5, 4.2, 3.8, 5.1, 6.5, 8.2, 7.6]

# 从小到大排序
asc = sorted(screen_time)
print("从少到多:", asc)
# 输出: [3.5, 3.8, 4.2, 5.1, 6.5, 7.6, 8.2]

# 从大到小排序
desc = sorted(screen_time, reverse=True)
print("从多到少:", desc)

📱 项目实践:数据报告

用你自己的真实屏幕时间数据,写一个 Python 程序,输出一份完整的「数字习惯报告」:

# ===== 我的数字习惯报告 =====
screen_time = [3.5, 4.2, 3.8, 5.1, 6.5, 8.2, 7.6]  # 换成你的真实数据
days = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]

print("=== 一周屏幕时间报告 ===")
print("总计:", sum(screen_time), "小时")
print("日均:", round(sum(screen_time) / len(screen_time), 1), "小时")
print("最高:", max(screen_time), "小时")
print("最低:", min(screen_time), "小时")

# 找最高那天
max_val = max(screen_time)
for i in range(len(days)):
    if screen_time[i] == max_val:
        print("最耗时的日子:", days[i])

下一节,我们给这份报告加上图表——用 Python 画出来。

🤔 思考

  • 如果有 365 天的数据(一年),你还愿意手动算均值吗?编程的优势在哪?
  • sum() / len() 算平均值,和第三章用循环累加再除,哪种更简洁?
  • 怎么找出高于平均值的日子有几天?

📝 知识小结

  • 大数据 4V 特征:Volume(大量)、Variety(多样)、Velocity(高速)、Value(价值)——选择题考点
  • 数据处理的核心:用列表存数据,用函数算统计量
  • 四个内置函数:sum() / len() / max() / min()
  • 平均值 = sum() / len(),用 round() 保留小数位
  • sorted() 排序,reverse=True 降序
  • 循环 + 判断可以定位"最值"的位置