python常用科学计算库及使用示例

​一、NumPy - 数值计算基础库​​

​​安装​​

复制代码
pip install numpy

​​核心功能示例​​

1. 数组创建与运算
python 复制代码
import numpy as np

# 创建数组
arr = np.array([1, 2, 3, 4])
matrix = np.array([[1, 2], [3, 4]])

# 数学运算
print(arr + 1)        # [2 3 4 5]
print(matrix @ matrix) # 矩阵乘法 [[7 10] [15 22]]

# 统计函数
data = np.array([1, 2, 3, 4, 5])
print(np.mean(data))   # 3.0
print(np.std(data))    # 1.4142135623730951
2. 随机数与线性代数
python 复制代码
# 随机数
rand_arr = np.random.rand(3, 3)  # 3x3随机矩阵

# 线性代数
A = np.array([[1, 2], [3, 4]])
inv_A = np.linalg.inv(A)  # 逆矩阵
eigvals = np.linalg.eigvals(A)  # 特征值

​​二、SciPy - 科学计算工具箱​​

​​安装​

复制代码
pip install scipy

​​核心功能示例​​

1. 积分与优化
python 复制代码
from scipy import integrate, optimize

# 定积分
def f(x):
    return x**2
result, _ = integrate.quad(f, 0, 1)  # 0.333...

# 函数最小值
result = optimize.minimize(lambda x: (x-3)**2, x0=0)
print(result.x)  # [3.]
2. 信号处理与插值
python 复制代码
from scipy import signal, interpolate

# 生成信号
t = np.linspace(0, 1, 100)
sig = np.sin(2 * np.pi * t)

# 滤波
b, a = signal.butter(4, 0.1)  # 4阶低通滤波器
filtered_sig = signal.filtfilt(b, a, sig)

# 插值
x = np.linspace(0, 10, 5)
y = np.sin(x)
f = interpolate.interp1d(x, y, kind='cubic')
print(f(5.5))  # 插值结果

​​三、Pandas - 数据分析​​

​​安装​​

复制代码
pip install pandas

​​核心功能示例​​

1. 数据结构与操作
python 复制代码
import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
df = pd.DataFrame(data)

# 基础操作
print(df['Name'])          # 选择列
print(df[df['Age'] > 25])  # 条件筛选
df['Salary'] = [5000, 6000]  # 新增列
2. 数据聚合与可视化
python 复制代码
# 分组聚合
grouped = df.groupby('Name').mean()  # 按姓名分组求均值

# 导出数据
df.to_csv('output.csv', index=False)

​​四、Matplotlib - 数据可视化​​

​​安装​​

复制代码
pip install matplotlib

​​核心功能示例​​

1. 基础绘图
python 复制代码
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y, label='sin(x)')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.show()
2. 高级图表
python 复制代码
# 散点图
plt.scatter(x, y, c=y, cmap='viridis')
plt.colorbar()  # 颜色条

# 子图
fig, axes = plt.subplots(2, 1)
axes[0].plot(x, y)
axes[1].hist(y, bins=20)
plt.tight_layout()
plt.show()

​​五、Scikit-learn - 机器学习​​

​​安装​​

复制代码
pip install scikit-learn

​​核心功能示例​​

1. 分类与回归
python 复制代码
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression

# 生成数据
X, y = make_regression(n_samples=100, n_features=1)

# 训练模型
model = LinearRegression()
model.fit(X, y)

# 预测
print(model.predict([[1]]))
2. 聚类与降维
python 复制代码
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA

# K-Means聚类
X = np.random.rand(100, 2)
kmeans = KMeans(n_clusters=3).fit(X)
print(kmeans.labels_)

# PCA降维
pca = PCA(n_components=1)
X_reduced = pca.fit_transform(X)

​​六、其他实用库​​

1. ​​SymPy​​ - 符号计算

python 复制代码
from sympy import symbols, diff

x = symbols('x')
f = x**2 + 2*x
print(diff(f, x))  # 导数: 2*x + 2

2. ​​Statsmodels​​ - 统计建模

python 复制代码
import statsmodels.api as sm

# 线性回归
X = sm.add_constant(X)  # 添加截距项
model = sm.OLS(y, X).fit()
print(model.summary())

​​总结​​

库名 核心用途 示例场景
NumPy 数值计算基础 数组运算、线性代数
SciPy 科学计算扩展 积分、优化、信号处理
Pandas 数据分析 数据清洗、聚合、导出
Matplotlib 数据可视化 折线图、散点图、子图
Scikit-learn 机器学习 分类、回归、聚类
SymPy 符号计算 微积分、方程求解
Statsmodels 统计建模 回归分析、假设检验
相关推荐
丨白色风车丨3 分钟前
LangChain Agent 从入门到实战:创建与调用参数全解析
前端·python·langchain
星恒讯工业路由器4 分钟前
工业网络设备选型:导轨式、机架式与车载式的部署差异
开发语言·网络·数据库·php·工业路由器·导轨式·车载式
2601_962885725 分钟前
如何用 Python 把多只股票对齐成一张宽表?
开发语言·python
蹊黎3 小时前
C++中vector类的部分简单实现
开发语言·c++·visual studio
IT_Octopus8 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148118 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
程序猿追9 小时前
kotlin-retry 接入鸿蒙后,怎样确认它真的会停止重试
开发语言·kotlin·harmonyos
我是人✓9 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
智能直播9 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
CCblandy9 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构