在 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% 的函数
  • 记住:向量化永远比循环快
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐