NumPy、SciPy、Pandas、Matplotlib 基础函数用法(Python)
一、NumPy 数值计算库NumPy 是Python科学计算的基础库核心为ndarray多维数组运算效率远高于普通列表支持向量化运算。1. 数组创建函数- np.array(序列)将列表、元组等转为多维数组- np.zeros(形状)创建指定形状的全0数组- np.ones(形状)创建指定形状的全1数组- np.arange(起始, 终止, 步长)生成等差一维数组- np.linspace(起始, 终止, 个数)在区间内均匀生成指定数量数值- np.random.rand(维度)生成0~1之间的随机浮点数组。2. 数组属性与形状操作- 数组.ndim获取数组维度- 数组.shape获取数组行列形状- 数组.size统计数组总元素个数- 数组.reshape(新形状)重塑数组维度- 数组.T实现数组转置。3. 索引与切片支持单元素取值、区间切片、多维数组行列选取语法与Python列表类似可灵活提取数组指定数据。4. 数学运算函数- np.sum()数组求和np.mean()计算平均值- np.max()/np.min()获取最大值、最小值- np.sqrt()开平方np.abs()取绝对值数组可直接进行加减乘除运算自带广播机制简化批量计算。代码示例import numpy as np1. 创建数组arr1 np.array([1, 2, 3, 4])arr2 np.zeros((2, 3))arr3 np.ones((3, 2))arr4 np.arange(0, 10, 2)arr5 np.random.rand(2, 2)2. 数组属性与形状操作print(数组维度, arr2.ndim)print(数组形状, arr2.shape)arr6 arr2.reshape(3, 2)arr7 arr2.T3. 索引与切片a np.array([[1,2,3],[4,5,6]])print(取值, a[0, 1])print(切片, a[:, 0:2])4. 数学运算print(求和, np.sum(arr1))print(均值, np.mean(arr1))print(最大值, np.max(arr1))print(最小值, np.min(arr1))print(开平方, np.sqrt(arr1))print(绝对值, np.abs([-1, -2, 3]))二、SciPy 科学计算库SciPy 基于NumPy开发专注高等数学、工程运算拓展了积分、线性代数、方程求解、插值等专业功能。1. 积分计算integrate.quad(函数, 积分下限, 积分上限)求解一元函数定积分。2. 线性代数运算- linalg.det(矩阵)计算矩阵行列式- linalg.inv(矩阵)矩阵求逆- linalg.solve(系数矩阵, 常数项)求解线性方程组。3. 方程与极值求解- optimize.fsolve(函数, 初始值)求解一元方程根- optimize.minimize(函数, 初始值)求解函数极值。4. 数据插值interp1d(原x数据, 原y数据)构建插值函数补全离散数据。代码示例import numpy as npfrom scipy import integrate, linalg, optimizefrom scipy.interpolate import interp1d1. 定积分计算def f(x):return x ** 2 2 * xres, err integrate.quad(f, 0, 2)print(定积分结果, res)2. 线性代数运算A np.array([[1, 2], [3, -1]])b np.array([5, 1])print(行列式, linalg.det(A))print(矩阵逆\n, linalg.inv(A))print(方程组解, linalg.solve(A, b))3. 方程求根def g(x):return x**2 - 9root optimize.fsolve(g, 2)print(方程根, root)4. 数据插值x np.array([0, 1, 2, 3])y np.array([1, 3, 5, 7])f_inter interp1d(x, y)print(插值结果, f_inter(1.5))三、Pandas 数据分析库Pandas 是表格数据处理专用库核心为Series一维序列和DataFrame二维数据表适配Excel、CSV等格式数据。1. 数据结构创建与文件读写- pd.Series(数据)创建一维序列- pd.DataFrame(字典/数组)创建二维数据表- pd.read_csv(文件路径)/pd.read_excel(文件路径)读取外部表格文件- DataFrame.to_csv(保存路径)将表格数据保存为文件。2. 数据查看函数- head(n)/tail(n)查看表格前/后n行数据- describe()输出数据统计摘要均值、最值、方差等。3. 数据清洗函数- dropna()删除含空值的行/列- fillna(填充值)对空值进行填充- drop_duplicates()删除重复数据。4. 数据筛选与统计- sort_values(列名)按指定列排序- groupby(分组列)按照指定字段分组配合聚合函数完成分组统计。代码示例import pandas as pd1. 创建数据结构s pd.Series([10, 20, 30, 40])df pd.DataFrame({姓名: [张三, 李四, 王五],成绩: [88, 76, 92]})2. 查看数据print(前2行数据\n, df.head(2))print(统计信息\n, df.describe())3. 数据清洗df2 pd.DataFrame({分数: [80, None, 90, None]})df2 df2.dropna()df2 df2.fillna(85)df2 df2.drop_duplicates()4. 排序与分组df_sort df.sort_values(成绩, ascendingFalse)group_data df.groupby(姓名)[成绩].mean()print(排序后数据\n, df_sort)print(分组统计\n, group_data)四、Matplotlib 数据可视化库Matplotlib 是主流绘图库可绘制各类图表、实现图像展示与基础图像处理。1. 画布与基础绘图- plt.figure(figsize(宽,高))创建并设置画布大小- plt.plot()绘制折线图plt.bar()绘制柱状图- plt.scatter()绘制散点图plt.hist()绘制直方图。2. 图表美化函数- plt.title(标题)设置图表标题- plt.xlabel(名称)/plt.ylabel(名称)设置横、纵坐标轴名称- plt.legend()显示图例。3. 图像相关函数- imread(图片路径)读取图片并转为NumPy像素数组- plt.imshow(数组)展示图像- plt.show()显示所有绘制图表与图像。代码示例import matplotlib.pyplot as pltfrom matplotlib.image import imread解决中文乱码plt.rcParams[font.sans-serif] [SimHei]plt.rcParams[axes.unicode_minus] False1. 基础绘图x [1, 2, 3, 4]y [2, 4, 1, 3]plt.figure(figsize(8, 4))plt.plot(x, y, label折线图)plt.bar(x, y, alpha0.5)plt.title(基础绘图)plt.xlabel(X轴)plt.ylabel(Y轴)plt.legend()plt.show()2. 图像读取与展示img imread(test.jpg)plt.imshow(img)plt.show()