pandas、numpy 和 matplotlib 三个数据科学常用库的核心指令整理
pandas、numpy 和 matplotlib 三个数据科学常用库的核心指令整理,涵盖各自的主要功能和典型用法:
一、NumPy(数值计算库)
NumPy 是科学计算的基础,专注于多维数组(ndarray
)的高效操作,支持大量数学运算。
指令 | 功能 | 示例 |
---|---|---|
np.array() | 创建数组 | arr = np.array([1,2,3]) (1D 数组);arr = np.array([[1,2],[3,4]]) (2D 数组) |
np.arange() | 生成等差数列 | np.arange(0, 10, 2) → [0,2,4,6,8] |
np.linspace() | 生成等间隔数列 | np.linspace(0, 1, 5) → [0,0.25,0.5,0.75,1] |
np.zeros() / np.ones() | 创建全 0 / 全 1 数组 | np.zeros((2,3)) (2 行 3 列全 0 数组) |
arr.shape | 查看数组形状 | arr = np.array([[1,2],[3,4]]); arr.shape → (2,2) |
arr.reshape() | 改变数组形状 | arr.reshape(1,4) (将 2×2 数组转为 1×4) |
np.mean() / np.sum() | 计算均值 / 总和 | np.mean(arr) ;np.sum(arr, axis=0) (按列求和) |
np.max() / np.min() | 找最大值 / 最小值 | np.max(arr) ;np.min(arr, axis=1) (按行求最小值) |
np.dot() | 矩阵乘法 | a = np.array([[1,2],[3,4]]); b = np.array([[5,6],[7,8]]); np.dot(a,b) |
np.concatenate() | 拼接数组 | np.concatenate([a,b], axis=0) (纵向拼接) |
np.random.rand() | 生成 0-1 随机数 | np.random.rand(2,2) (2×2 随机数组) |
二、Pandas(数据处理库)
Pandas 基于 NumPy,提供了 Series
(一维)和 DataFrame
(二维表格)数据结构,专注于数据清洗、分析和处理。
指令 | 功能 | 示例 |
---|---|---|
pd.Series() | 创建一维序列 | s = pd.Series([1,2,3], index=['a','b','c']) |
pd.DataFrame() | 创建二维表格 | df = pd.DataFrame({'name':['A','B'],'age':[20,30]}) |
pd.read_csv() / pd.read_excel() | 读取文件 | df = pd.read_csv('data.csv') ;df = pd.read_excel('data.xlsx') |
df.head(n) / df.tail(n) | 查看前 n / 后 n 行 | df.head(5) (默认前 5 行) |
df.info() | 查看数据信息(类型、缺失值等) | df.info() |
df.describe() | 统计数值列的基本特征(均值、标准差等) | df.describe() |
df['col'] / df.loc[] / df.iloc[] | 选择数据 | df['age'] (选列);df.loc[0:2, ['name','age']] (按标签选行 / 列);df.iloc[0:2, 0:2] (按位置选) |
df.dropna() / df.fillna() | 处理缺失值 | df.dropna() (删除含缺失值的行);df.fillna(0) (用 0 填充缺失值) |
df.drop_duplicates() | 去除重复行 | df.drop_duplicates(subset='name') (按 name 去重) |
df.groupby() | 分组聚合 | df.groupby('gender')['age'].mean() (按 gender 分组求 age 均值) |
pd.merge() | 合并表格(类似 SQL join) | pd.merge(df1, df2, on='id') (按 id 列合并) |
pd.concat() | 拼接表格 | pd.concat([df1, df2], axis=0) (纵向拼接) |
df.apply() | 对行列应用函数 | df['age'].apply(lambda x: x+1) (age 列加 1) |
三、Matplotlib(数据可视化库)
Matplotlib 是基础可视化工具,主要通过 pyplot
模块绘制各类图表。
指令 | 功能 | 示例 |
---|---|---|
plt.plot() | 绘制折线图 | x = [1,2,3]; y = [4,5,6]; plt.plot(x, y) |
plt.scatter() | 绘制散点图 | plt.scatter(x, y, color='red') |
plt.bar() / plt.barh() | 绘制柱状图 / 横向柱状图 | plt.bar(['A','B'], [10,20]) |
plt.hist() | 绘制直方图(分布) | plt.hist(df['age'], bins=10) (age 列的分布,分 10 组) |
plt.title() / plt.xlabel() / plt.ylabel() | 设置标题和轴标签 | plt.title('标题'); plt.xlabel('X轴') |
plt.legend() | 添加图例 | plt.plot(x,y, label='线1'); plt.legend() |
plt.show() | 显示图像 | 所有绘图操作后调用,显示图表 |
plt.savefig() | 保存图像 | plt.savefig('figure.png', dpi=300) (保存为 PNG,分辨率 300) |
plt.subplot() / plt.subplots() | 创建子图 | plt.subplot(2,1,1) (2 行 1 列的第 1 个子图);fig, axes = plt.subplots(2,2) (2×2 子图) |
plt.xlim() / plt.ylim() | 设置坐标轴范围 | plt.xlim(0, 10); plt.ylim(0, 20) |
plt.grid() | 添加网格线 | plt.grid(True, linestyle='--') (虚线网格) |