第五天的尝试
目录
一、每日一言
二、练习题
三、效果展示
四、下次题目
五、总结
一、每日一言
毅力是永久的享受。
没有人是一座孤岛,每个人都是这块大陆的一部分。
二、练习题
import numpy as np
import matplotlib.pyplot as plt
array = np.array([1,2,3,4,5])
plt.plot(array)
一、NumPy 到底是什么?
简单来说,NumPy 是一个专门为数值计算而设计的 Python 库 ,它的全称是 “Numerical Python”。你可以把它想象成一个超级强大的“数学工具箱”,专门用来处理大量的数字数据。
它不像 Excel 那样可视化,也不像 Word 那样写文档,但它能做的事情却非常强大:
- 快速处理成千上万甚至上亿个数字
- 高效地进行矩阵运算(比如图像、声音等数据)
- 为其他高级数据分析库打下坚实的基础
二、为什么 Python 原生的数据结构不够用?
Python 自带了一些数据结构,比如列表(list)、元组(tuple)和字典(dict)。它们确实很好用,但在处理大量数据时就显得有些“力不从心”了。
举个例子:
假设你要对一百万个数字进行加减乘除运算,如果使用 Python 的 list,你需要一个个遍历,效率很低;而 NumPy 提供了一种叫做 数组(array) 的结构,可以直接对整个数组进行操作,而且底层是用 C 语言写的,速度更快、内存更省 !
这就像骑自行车和开汽车的区别:虽然都能前进,但面对长距离任务时,效率差得可不是一点点。
三、NumPy 的核心:数组(Array)
说到 NumPy,就不得不提它的核心数据结构 —— 数组(ndarray) 。
1. 什么是 ndarray?
ndarray 全称是 N-dimensional array(N维数组) ,它可以表示一维、二维、三维甚至更高维度的数据。
- 一维数组:像是一个数字组成的队列,比如 [1, 2, 3, 4]
- 二维数组:就像是表格或者矩阵,有行也有列
- 三维及以上:可以看作是多个二维数组堆叠起来的“立方体”
2. 数组的优势
- 统一类型 :每个元素必须是相同的数据类型(比如全是整数或浮点数),这样计算机更容易处理。
- 支持向量化运算 :你可以一次性对整个数组进行加减乘除,不需要一个个去循环。
- 高效存储 :比 Python 原生的 list 更节省内存空间。
四、NumPy 能帮我们做什么?
虽然我们不写代码,但我们可以通过一些生活化的场景来理解 NumPy 的应用价值。
场景一:成绩统计
假设你是一位老师,手里有一班学生的考试成绩。你想知道平均分是多少,谁考得最好,谁需要补考。
这时候 NumPy 就派上用场了。它能快速帮你算出这些信息,不需要你一个一个加起来再除以人数。
场景二:图片处理
一张照片本质上就是由像素组成的二维数组。每个像素点都有颜色值,比如红、绿、蓝三个通道的数值。
通过 NumPy,我们可以轻松地对这张图片进行旋转、裁剪、调整亮度等操作。
场景三:模拟实验
如果你想研究天气变化趋势、股票价格波动、用户行为模式,通常都需要生成大量随机数据来进行模拟。
NumPy 提供了丰富的函数来生成各种分布的数据,比如正态分布、均匀分布等等。
五、NumPy 和其他库的关系
NumPy 并不是“孤军奋战”,它是很多高级数据分析库的基础:
库名 | 功能 | 依赖 |
---|---|---|
Pandas | 表格型数据处理 | 基于 NumPy |
Matplotlib | 绘图 | 使用 NumPy 数据 |
Scikit-learn | 机器学习 | 输入输出都是 NumPy 数组 |
TensorFlow / PyTorch | 深度学习 | 内部数据结构类似 NumPy |
一、Matplotlib 到底是什么?
简单来说:
Matplotlib 是 Python 中用于绘制图表和图形的库,它的核心功能是将数据转化为图像。
你可以把它想象成一个“画布” + “画笔”的组合,你告诉它你想画什么数据,它就帮你把数据“画出来”。
比如:
把销售数据画成折线图
把人口分布画成柱状图
把气温变化画成散点图
这些都能通过 Matplotlib 来完成。
二、为什么我们需要数据可视化?
我们先思考一个问题:
如果给你一张 Excel 表格,里面有上万行数据,你能一眼看出趋势吗?
答案大概是:很难。
但如果我们把同样的数据画成一条曲线图或者柱状图,你的大脑就能立刻捕捉到关键信息,比如:
哪个季度销售额最高?
哪个月增长最快?
哪些数据点出现了异常?
这就是数据可视化的力量 —— 它让复杂的数据变得直观、易懂、有说服力 。
而 Matplotlib,就是 Python 中最早、最经典的实现方式之一。
三、Matplotlib 能做什么?
虽然我们不讲代码,但我们可以通过几个实际的应用场景来理解 Matplotlib 的能力。
场景一:分析销售趋势
假设你是公司市场部的一员,手里有一年的销售数据。你想知道哪几个月卖得最好,有没有季节性波动。
这时候你可以用 Matplotlib 绘制一个折线图 ,清晰地看到全年走势。
场景二:对比不同产品的销量
你想比较 A、B、C 三个产品哪个卖得最好,这时候就可以用 Matplotlib 绘制一个柱状图 ,一眼看出谁领先。
场景三:研究两个变量之间的关系
比如你发现天气越热,冰淇淋销量越高。你想看看这两者之间是不是真的有关系,这时候可以用 Matplotlib 画一个散点图 ,观察它们是否呈现某种规律。
场景四:查看数据的分布情况
比如你想知道学生考试成绩的分布是集中在高分段还是低分段,这时候可以画一个直方图(Histogram) ,快速了解整体分布特征。
四、Matplotlib 的设计思想
Matplotlib 的设计借鉴了 MATLAB 的绘图风格,它提供了一个层次分明、结构清晰的绘图系统 。
我们可以把它想象成一个“画布工厂”:
创建画布(Figure) :这是你整个图表的大背景。
添加子图(Axes) :就像在画布上划分出不同的区域,每个区域可以画不同的图。
绘制内容 :比如折线、点、柱子等。
添加标题、坐标轴标签、图例等 :让图表更完整、更有解释性。
这种模块化的设计,让它既能画简单的图,也能画复杂的多图组合。
三、效果展示
四、下次题目
详细讲一下Matplotlib的用处,和相关用法,还有官方文档。
五、总结
一切都是最好的安排