少儿编程

系列

Python 初体验 | 美丽的数据

前言

「Python 初体验」小讲堂又开课啦!

昨天,我们学习了 Python 中函数的定义和使用,以及事件响应的原理,海龟移动的小游戏你完成了吗?

今天我们将会了解 Python 在数据科学中的应用,并完成一个小的数据科学作品~

数据

我们先来了解一个非常重要的概念 —— 数据 Data

什么是数据呢?

我们先列举几个生活中数据的例子:

一份测试的卷子是一种数据,同时考试的成绩也是数据

一本书,也可以看作是一份包含很多内容很多的数据

一位同学的简介也是关于这位同学的数据

一张照片也是数据的一种

一段音乐是数据

一个视频也是数据

等等,还有许多,它们都是我们日常生活中常见的事物,都是数据的具体体现。

那么,到底什么是数据呢,我们给出一个简单的理解:

数据就是信息的载体

Wikipedia

换句话说,数据是包含了各种各样信息的不同形式的表现。

有的信息极为重要,比如一份谍报,有的信息则无所谓,比如我们每天说了多少话,又有谁会关心呢~

数据可视化

如今,我们生活在一个数据大爆发的时代,伴随着互联网的发展,每天在全球范围内都会产生海量的数据。

原始的数据通常看起来都是杂乱无章的,但这些看似没有规律的数据里往往隐藏着重要的信息,可以为我们未来的决策提供依据。

一份原始的数据

所以,把人们难以辨认的原始数据,经过一系列的数据处理过程,转换为直观上非常形象的图表的过程,就是数据的可视化。

全球气温数据的可视化图形 | Wikipedia

上图是一个由全球气温数据生成的一个表示温度的图像,从最热的红色,到最冷的紫色,全球各地的温度一目了然。

这些图表往往都非常美观,所以数据可视化既可以说是一个技术,又可以说是一种艺术。

今天,我们就要学会简单的数据可视化。

Python 科学计算

在数据处理领域,很多计算机语言都有用武之地,但公认的是,Python 是其中最为强大和流行的语言。

大量的数据科学模块都对 Python 的数据处理提供强有力的支持,使得 Python 在数据处理上具有得天独厚的优势。

时下流行的人工智能相关的机器学习、深度学习都需要分析并处理大量的数据,所以 Python 极大的推动了人工智能领域的发展。

好啦,我们先简单介绍到这。

现在,我们来学习一个非常流行的 Python 数据可视化模块 —— matplotlib

它是一个基于 Python 语言的图形用户界面工具包,我们先来看一个最为简单小例子:

from matplotlib import pyplot as plt
x = [0, 1, 2, 3]
y = [0, 1, 2, 3]
plt.plot(x, y)
plt.show()
                

运行后,一条直线就出现在坐标系中了:

matplotlib 绘制的直线

下面我们就来做一个数据可视化的小作品!

天气走势

相信这几天,北方的小同学们都换上秋衣,因为就在国庆刚刚过后,一股强大的冷气流席卷了北方很多城市,仿佛一夜之内从夏天进入了秋天。

天气信息和我们的生活密切相关,气象台会提供过往的天气历史信息,我们现在就把这些数据转换为可视化的图形展示出来,看一看近来天气的发展趋势。

我们现在选取关于温度的三种数据:

  • 最高温度
  • 平均温度
  • 最低温度

现在,我们获得了北京市过去 30 天的天气数据,如下表:

月份日期 平均气温 最高气温 最低气温
07/09 27.8 34.9 20.6
08/09 28.4 35.9 20.9
09/09 26.7 31.3 22.1
... ... ... ...
05/10 13.9 19.2 8.6
06/10 12.4 16.3 8.6

北京市 9 月 7 日至 10 月 6 日温度数据

这就是我们的第一手原始数据,下面开始可视化的神奇转变。

我们依然使用 matplotlib 模块,仿照第一个例子,很快完成了代码:

from matplotlib import pyplot as plt

avg = [27.8, 28.4, 26.7, 19.9, 21.1, 20.6, 22.4, 23.1, 21.6, 21.6, 21.4, 20.8, 18.8, 21.1, 21.8,
 21.9, 24.0, 23.3, 22.2, 22.1, 21.9, 21.9, 23.0, 22.9, 22.5, 22.3, 23.4, 15.6, 13.9, 12.4]
max = [34.9, 35.9, 31.3, 21.4, 23.7, 22.6, 27.0, 28.8, 26.9, 27.0, 26.9, 25.4, 24.1, 27.6, 27.7,
 27.5, 31.8, 31.3, 30.0, 29.3, 27.7, 28.6, 29.4, 29.2, 28.5, 28.6, 29.9, 19.3, 19.2, 16.3]
min = [20.6, 20.9, 22.1, 18.5, 18.6, 18.7, 17.7, 17.5, 16.4, 16.2, 16.0, 16.1, 13.5, 14.7, 15.8,
 16.3, 16.2, 15.3, 14.4, 15.0, 16.0, 15.3, 16.6, 16.7, 16.5, 16.0, 16.8, 11.9, 8.6, 8.6]

days = range(1, 31)

plt.plot(days, min)
plt.plot(days, avg)
plt.plot(days, max)

plt.title('北京市最近 30 天气温变化图')

plt.show()
                

运行一下,北京市一个月来的气温走势就一目了然啦:

2019 年北京 9-10 月气温变化

看得出,最近几天降温很厉害,小朋友们多加衣服啊~

我们明天见!