数据分析必备:NumPy + Pandas 核心知识点全梳理
·
在 Python 数据分析领域,NumPy 负责底层数值计算,Pandas 负责表格数据处理,二者是黄金搭档。NumPy 提供高性能数组,Pandas 提供真正的数据分析能力:读取、清洗、筛选、分组、聚合、时间序列……
这篇文章一次性把 NumPy + Pandas 最核心知识点全部整理好,让你一篇学会数据分析基础。
一、NumPy 核心知识点
ndarray 是多维、同类型、连续内存的数组,运算速度远超列表。
常用属性:
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
arr.shape # 形状 (2,3)
arr.ndim # 维度 2
arr.dtype # 类型 int64
arr.size # 元素总数 6
arr.T # 转置
2. 数组创建方式(高频)
np.array([1,2,3])
np.zeros((3,4))
np.ones((2,5))
np.full((2,2), 10)
np.arange(0,10,2)
np.linspace(0,1,5)
np.random.rand(3,2) # 0~1
np.random.randn(3,3) # 正态分布
np.random.randint(0,10,(2,4))
3. 索引、切片、筛选
arr1d = np.array([0,1,2,3,4])
arr1d[1:4]
arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2d[0,1]
arr2d[:,1]
arr2d[arr2d > 5]
arr2d[(arr2d>3) & (arr2d<8)]
4. 形状操作
arr.reshape(3,4)
arr.flatten() # 展平
arr.ravel() # 视图(更快)
np.hstack((a,b)) # 横向拼接
np.vstack((a,b)) # 纵向拼接
5. 向量化运算(NumPy 速度核心)
a + b
a * 10
np.exp(a)
np.log(a)
np.sin(a)
6. 广播机制
不同形状数组自动补齐,实现运算:
a = np.array([1,2,3])
b = np.array([10])
a + b
7. 统计函数
np.sum(arr)
np.mean(arr)
np.max(arr)
np.std(arr)
np.median(arr)
np.sum(arr, axis=0) # 按列
np.sum(arr, axis=1) # 按行
8. 缺失值处理
np.isnan(arr)
np.nanmean(arr)
arr[np.isnan(arr)] = 0
二、Pandas 核心知识点(数据分析真正主力)
1. Pandas 两大核心对象
- Series:带索引的一维数据
- DataFrame:表格型二维数据(行 + 列)
import pandas as pd
s = pd.Series([1,2,3,4])
df = pd.DataFrame({
'name': ['A','B','C'],
'age': [20,25,30],
'score': [80,90,85]
})
2. 数据读取(最常用)
df = pd.read_csv('data.csv')
df = pd.read_excel('data.xlsx')
df = pd.read_json('data.json')
3. 快速查看数据
df.head()
df.tail()
df.info()
df.describe()
df.shape
df.columns
df.dtypes
df.isnull().sum()
4. 数据选择(行列筛选)
选列
df['age']
df[['age','score']]
选行(按索引 / 位置)
df.loc[0]
df.iloc[0:3]
条件筛选
df[df['age'] > 25]
df[(df['age']>20) & (df['score']>=80)]
5. 数据清洗(必备)
缺失值
df.isnull().sum()
df.dropna()
df.fillna(0)
df.fillna(df.mean())
重复值
df.duplicated().sum()
df.drop_duplicates()
替换值
df.replace('old','new')
6. 新增、修改、删除列
df['new_col'] = df['age'] * 2
df.drop('col', axis=1, inplace=True)
7. 分组聚合(数据分析核心)
df.groupby('name')['score'].mean()
df.groupby('name').agg({
'age':'max',
'score':'mean'
})
8. 排序
df.sort_values('score', ascending=False)
df.sort_index()
9. 表合并(拼接数据)
pd.concat([df1, df2])
pd.merge(df1, df2, on='id')
10. 时间序列处理
df['date'] = pd.to_datetime(df['date'])
df.resample('M').sum()
11. 数据保存
df.to_csv('out.csv')
df.to_excel('out.xlsx')
三、NumPy 与 Pandas 的关系(非常重要)
- Pandas 的底层就是 NumPy
- Series.values → 返回 numpy 数组
- DataFrame.values → 返回 numpy 数组
- 所有向量化运算都依赖 NumPy
所以:NumPy 是基础,Pandas 是工具;先会 NumPy,再精通 Pandas。
四、学习建议(超实用)
- 先掌握 NumPy:数组、索引、向量化、广播
- 再学 Pandas:读取、筛选、清洗、分组、聚合
- 数据分析 80% 场景只用到 20% 的函数
- 记住:向量化永远比循环快
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)