Python库的多样性使得它们可以在不同的应用场景中发挥作用,不同场景下同一个库可能拥有不同的功能,本系列未来会有不同的分类,可能会出现相同的库。数量很多,慢慢整理。文中的示例都是最基础的用法,有些就顺手写了,有些就丢给Ai,看个乐就行。
1. NumPy
功能: 用于高效的数值计算,尤其是大规模的数组操作和数学函数。
使用场景:
- 数值计算、线性代数、统计计算等。
- 在机器学习和数据分析中,NumPy用于处理多维数组和高效的数值计算。
示例:
import numpy as np # 创建一个 3x3 的随机数组 arr = np.random.rand(3, 3) print(arr) # 数组加法 arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) result = arr + arr2 print(result)
2. Pandas
功能: 提供高效的数据结构(如DataFrame)来处理和分析结构化数据,支持数据清洗、聚合、时间序列分析等。
使用场景:
- 数据清洗与预处理:缺失值填补、数据格式转换、重复数据去除等。
- 数据分析:按条件筛选数据、数据汇总与聚合。
示例:
import pandas as pd # 创建一个 DataFrame data = { 'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'city': ['New York', 'Los Angeles', 'Chicago'] } df = pd.DataFrame(data) df_filtered = df[df['age'] > 30] print(df_filtered)
3. Matplotlib
功能: 一个基本的绘图库,用于生成静态图表,如折线图、柱状图、散点图等。
使用场景:
- 数据可视化:绘制图表来展示数据的趋势、分布、相关性等。
示例:
import matplotlib.pyplot as plt # 创建数据 x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] # 创建图表 plt.plot(x, y) plt.title('Simple Plot') plt.xlabel('X-axis') plt.ylabel('Y-axis') # 显示图表 plt.show()
4. Seaborn
功能: 基于Matplotlib,提供更加美观和易用的绘图接口,特别适用于统计数据的可视化。
使用场景:
- 高级数据可视化:创建更复杂和更具交互性的图表,如热图、箱型图、Violin图等。
示例:
import seaborn as sns import matplotlib.pyplot as plt # 使用Seaborn绘制数据集的箱型图 tips = sns.load_dataset('tips') sns.boxplot(x='day', y='total_bill', data=tips) plt.show()
5. SciPy
功能: 基于NumPy,提供了许多用于科学计算的工具,如数值积分、优化、插值、信号处理等。
使用场景:
- 高级数学和科学计算:求解优化问题、求解线性方程组、进行积分和差分等。
示例:
from scipy import integrate # 定义一个函数 def f(x): return x**2 # 计算该函数从0到1的积分 result, error = integrate.quad(f, 0, 1) print(f'积分结果: {result}, 误差: {error}')
6. SymPy
功能: SymPy 是一个用于符号计算的库,支持代数、微积分、线性代数等符号运算。
使用场景:
- 求解代数方程、微积分、符号积分和微分。
- 代数简化、极限运算。
示例:
import sympy as sp # 定义符号变量 x = sp.symbols('x') # 定义表达式 expr = sp.sin(x) ** 2 + sp.cos(x) ** 2 # 进行符号简化 simplified_expr = sp.simplify(expr) print(simplified_expr) # 计算积分 integral = sp.integrate(expr, x) print(integral)
7. Statsmodels
功能: Statsmodels 是一个用于统计建模和回归分析的库。它支持线性回归、广义线性回归、时间序列分析等多种统计方法。
使用场景:
- 统计建模:线性回归、时间序列分析、假设检验等。
- 分析和估计统计模型。
示例:
import statsmodels.api as sm import numpy as np # 创建一些数据 X = np.random.rand(100, 2) X = sm.add_constant(X) # 添加常数项 y = np.dot(X, np.array([1, 2, 3])) + np.random.normal(size=100) # 使用OLS(普通最小二乘法)进行回归分析 model = sm.OLS(y, X) results = model.fit() # 输出回归结果 print(results.summary())
8. Plotly
功能: Plotly 是一个交互式数据可视化库,支持多种图形和高度定制化的交互式图表。
使用场景:
- 动态和交互式图表:适用于Web和数据展示平台。
- 支持3D图表和地理空间可视化。
示例:
import plotly.express as px # 加载内置数据集 df = px.data.gapminder() # 创建交互式散点图 fig = px.scatter(df, x='gdpPercap', y='lifeExp', color='continent', size='pop', hover_name='country') # 显示图表 fig.show()
9. Bokeh
功能: Bokeh 是一个用于创建交互式Web可视化的库。它可以生成实时更新、交互式的图表,并集成到Web应用中。
使用场景:
- Web图表和仪表盘:适用于动态展示。
- 高度自定义的交互式图表和大数据可视化。
示例:
from bokeh.plotting import figure, show # 创建一个简单的散点图 p = figure(title="Simple Scatter", x_axis_label='X', y_axis_label='Y') p.scatter([1, 2, 3, 4], [4, 3, 2, 1]) # 显示图表 show(p)
10. Altair
功能: Altair 是一个基于Vega和Vega-Lite的声明式统计可视化库,它通过简单而直观的API生成高质量的交互式图表。
使用场景:
- 声明式统计可视化:适用于快速生成标准化的图表,注重数据的传达和简洁性。
示例:
import altair as alt import pandas as pd # 创建数据 data = pd.DataFrame({ 'x': [1, 2, 3, 4, 5], 'y': [1, 3, 5, 7, 9] }) # 创建Altair图表 chart = alt.Chart(data).mark_line().encode( x='x', y='y' ) # 显示图表 chart.show()