每日python库:数据分析处理与科学计算(1)

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()
上一篇
下一篇