numpy、scipy、pandas、matplotlib读书报告

发布时间 2023-12-17 18:59:26作者: 暮木叁水

一,基本函数的用法
NumPy(Numerical Python):
NumPy 是 Python 中用于科学计算的基础包。它提供了多维数组对象(例如 ndarray)、用于数组操作的各种函数以及线性代数、傅里叶变换和随机数生成等功能。NumPy 的主要优势在于其高效的数组处理能力,使得数据处理变得更快速、更简单。它为用户提供了广泛的数学函数和操作,适用于各种科学计算和数据处理任务。

SciPy(Scientific Python):
SciPy 是建立在 NumPy 基础上的一个开源的科学计算库,提供了许多高级的数学、科学和工程计算功能。它包含了各种模块和子包,例如优化、统计、插值、信号处理、图像处理、微分方程求解等。SciPy 的强大功能使其成为科学研究和工程应用中不可或缺的一部分。

Pandas:
Pandas 是一个用于数据处理和分析的强大工具,它基于 NumPy 构建,提供了两种主要数据结构:Series 和 DataFrame。DataFrame 是 Pandas 最重要的数据结构之一,类似于电子表格,可用于处理和操作结构化数据。Pandas 提供了各种功能,包括数据清洗、重塑、分组、聚合、索引、切片、合并等,使得数据分析变得更加便捷和高效。

Matplotlib:
Matplotlib 是一个用于创建数据可视化图表的库,它提供了类似于 MATLAB 的绘图接口。Matplotlib 可以绘制各种类型的图表,包括折线图、散点图、柱状图、饼图、等高线图等。它具有高度可定制性,用户可以控制图表的各个方面,包括颜色、线型、标签、图例等,从而创建具有专业外观的可视化结果。

二,解决一些具体问题
NumPy
解方程组

点击查看代码
import numpy as np

# 系数矩阵
coefficients = np.array([[2, 3], [1, -2]])
# 常数向量
constants = np.array([8, -3])

# 解线性方程组
solution = np.linalg.solve(coefficients, constants)

print("Solution of the equations:", solution)


SciPy
统计分析

点击查看代码
from scipy.stats import norm

# 正态分布统计分析
data = np.random.normal(loc=0, scale=1, size=1000)

# 计算均值和标准差
mean = np.mean(data)
std_dev = np.std(data)

# 计算累积分布函数(CDF)
cdf_at_0 = norm.cdf(0, loc=mean, scale=std_dev)

print("Mean:", mean)
print("Standard Deviation:", std_dev)
print("CDF at 0:", cdf_at_0)

Pandas
读取和处理数据

点击查看代码
import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('data.csv')

# 显示数据的前几行
print(data.head())

# 数据基本信息
print(data.info())

# 描述性统计信息
print(data.describe())

Matplotlib
绘制折线图

点击查看代码
import matplotlib.pyplot as plt

# 准备数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 绘制折线图
plt.plot(x, y, marker='o', linestyle='-', color='b')
plt.title('Line Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.grid(True)
plt.show()

绘制阻尼曲线

点击查看代码
import matplotlib.pyplot as plt
import numpy as np

# 参数设置
t = np.linspace(0, 5, 100)  # 时间范围
decay_rate = 0.1  # 阻尼系数

# 计算阻尼曲线的振幅
amplitude = np.exp(-decay_rate * t)

# 绘制阻尼曲线
plt.plot(t, amplitude, label='Damped Oscillation', color='blue')
plt.title('Damped Oscillation')
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.legend()
plt.grid(True)
plt.show()

输出