当前位置:首页>python>Python数据分析三板斧:NumPy、Pandas、Matplotlib怎么用

Python数据分析三板斧:NumPy、Pandas、Matplotlib怎么用

  • 2026-10-11 07:13:57
Python数据分析三板斧:NumPy、Pandas、Matplotlib怎么用

只会写Python基础,做数据分析还是不够。数据清洗、计算、画图,这三件事基本绕不开NumPy、Pandas和Matplotlib。有人管它们叫三剑客,其实就是一套顺手的工具链。

一、NumPy:底层算数的加速器

NumPy全称Numerical Python,是Python科学计算的地基。它的核心是ndarray,也就是N维数组。这玩意儿比Python原生的列表快几十倍,因为底层是C写的,数据在内存里连续存放。

看一眼基本用法:

```pythonimport numpy as nparr = np.array([1, 2, 3, 4, 5])matrix = np.array([[1, 2], [3, 4], [5, 6]])print(matrix.shape)   # (3, 2)print(arr.mean())     # 3.0print(arr.sum())      # 15```

NumPy有几个好用的特性:

  • 广播机制:形状不同的数组做运算时自动匹配

  • 丰富的数学函数:线性代数、随机数、傅里叶变换都有

  • 性能:比纯Python循环快10倍以上

它主要用在科学计算、机器学习特征处理、图像处理这些场景,同时也是Pandas、SciPy等库的底层依赖。

二、Pandas:最顺手的表格工具

Pandas提供了DataFrame和Series两种数据结构,处理表格数据非常舒服。

读数据、看概况

```pythonimport pandas as pddf = pd.read_csv('sales.csv')print(df.head())        # 前5行print(df.info())        # 每列类型、缺失值情况print(df.describe())    # 数值列的均值、标准差、分位数等```

清洗缺失值

```python# 先看看每列缺了多少df.isnull().sum()# 数值列,用均值填上df['price'].fillna(df['price'].mean(), inplace=True)# 分类列,用出现次数最多的值填df['category'].fillna(df['category'].mode()[0], inplace=True)```

分组聚合和透视表

```python# 按区域分组求总销售额region_sales = df.groupby('region')['total_sales'].sum()# 透视表:行是区域,列是品类,值是对应的销售额pivot = pd.pivot_table(df,                        values='total_sales',                       index='region',                       columns='category',                       aggfunc='sum')```

处理大文件的小技巧

文件太大一次性读不进内存怎么办:

```python# 分块读,每次处理1万行for chunk in pd.read_csv('big.csv', chunksize=10000):    process(chunk)# 或者只读需要的列df = pd.read_csv('data.csv', usecols=['id', 'date', 'value'])```

三、Matplotlib:把数据画出来

Matplotlib是Python最全的可视化库,几乎什么图都能画。实际工作中经常搭配Seaborn一起用,Seaborn基于Matplotlib,语法更简单,统计图表更漂亮。

常用的图就那么几种:

  • 折线图:看趋势,比如每天访问量变化

  • 柱状图:比大小,比如不同品类销售额

  • 散点图:看两个变量之间的关系

  • 直方图:看数据分布

  • 热力图:看相关性矩阵

举个例子,画一张相关性热力图:

```pythonimport matplotlib.pyplot as pltimport seaborn as snscorr = df.corr()sns.heatmap(corr, annot=True, cmap='coolwarm')plt.title('特征相关性热力图')plt.show()```

四、三个东西怎么配合的

NumPy在最底层,干脏活累活(高性能数组计算)。Pandas坐在NumPy上面,提供方便的表格操作接口。Matplotlib把Pandas处理完的数据画成图。

用NumPy算得快,用Pandas用得爽,用Matplotlib看得清。

五、一个完整的例子:电商销售数据

假设你有一张销售订单表,想看看各个地区的销售额对比。

```pythonimport pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 读数据df = pd.read_csv('sales_data.csv')# 简单清洗:丢掉空行,把价格转成数字df.dropna(inplace=True)df['price'] = df['price'].astype(float)# 算每个订单的总价,然后按地区汇总df['total_sales'] = df['quantity'] * df['price']region_sales = df.groupby('region')['total_sales'].sum()# 画柱状图region_sales.plot(kind='bar', figsize=(10, 6))plt.title('各地区销售额对比')plt.xlabel('地区')plt.ylabel('销售额(万元)')plt.show()```

这个流程覆盖了:加载 → 清洗 → 计算 → 可视化,日常分析基本就是这些步骤。

六、学习的顺序建议

  • 先学NumPy:搞清楚怎么创建数组、索引、切片、广播,不用太深,够用就行。

  • 再学Pandas:重点练read_csv、groupby、merge、fillna,这几个最常用。

  • 最后学Matplotlib:先学会画折线图、柱状图、散点图,再看怎么调整样式、做多子图。

建议找个真实数据集,比如Kaggle上Titanic那个经典数据,完整跑一遍。从读数据开始,清洗几个字段,分组算点什么,最后画一两张图。走通一次,后面就顺了。

推荐一个受到超多好评的终生学习小程序「学习站」。

全网超火的课程资源:涵盖18个IT行业热门课程,3000G精品授课视频,从入门到精通,理论+实战,小白适用!
全网超牛的公开课:定期邀请一线大厂大佬来直播间宣讲,全程干货,福利满满,从基础理论到实战案例,分享实战IT技能,拒绝纸上谈兵!
全网超全的题库资源:1800个知识点练习,10万道面试真题,沉浸式刷题练习,帮助各位同学夯实基础,提升技术水平,为升职加薪保驾护航!
— 不负每份期待,继续与你共同成长—
- End -
想要获得技能提升和职业发展
点击即可学习免费好课哦!
免费好课推荐:
Linux云计算 | Java开发 | 鸿蒙 | Python数据分析 | 物联网 | 网络安全 | 游戏原画 | 软件测试 | Unity游戏 | PMP项目管理 | HTML5大前端 | 全媒体运营 | UI/UE设计 | 影视剪辑 | C++ | 大数据 | 计算机二级

最新文章

随机文章