读书报告

发布时间 2023-12-22 22:22:47作者: huang123456789

NumPy
NumPy是Python中一个强大的数值计算库,提供了高性能的多维数组对象和用于处理这些数组的工具。NumPy的主要功能包括:
多维数组操作: NumPy的核心是ndarray对象,它允许进行高效的数组操作,如矩阵乘法、转置和元素级操作。
数学函数: 提供了丰富的数学函数,用于执行各种数学运算,如三角函数、指数函数和统计函数。
线性代数: 包含了线性代数操作,如求解线性方程组、计算特征值和特征向量等。
NumPy为数据科学提供了基础,是其他库的基础。
SciPy
SciPy建立在NumPy的基础上,提供了更高级的科学计算功能。它包含了许多模块,用于解决各种科学和工程问题,如优化、信号处理、图像处理和统计学。SciPy的主要模块包括:
优化: 提供了用于最小化和最大化目标函数的优化算法。
信号处理: 包括滤波、频谱分析和信号生成等功能。
统计学: 提供了统计模型、随机变量生成和统计检验等工具。
SciPy通过提供高级的科学计算工具,扩展了NumPy的功能,使得解决更加复杂的问题变得更加容易。
Pandas
Pandas是用于数据分析和处理的库,它提供了数据结构和函数,使得在Python中进行数据操作变得更加简单。Pandas的关键功能包括:
数据结构: 提供了Series和DataFrame两种主要数据结构,用于处理一维和二维数据。
数据清洗: 包括缺失值处理、重复值删除和数据转换等功能。
数据分析: 支持数据聚合、分组和透视表等高级数据分析操作。
Pandas的简洁性和高效性使得数据科学家能够更轻松地进行数据预处理和分析。
Matplotlib
Matplotlib是Python中用于绘制图表和可视化数据的库。它支持各种图形类型,包括线图、散点图、柱状图和3D图。Matplotlib的主要功能包括:
静态图和动态图: 可以生成静态图表,也支持创建动画以更生动地展示数据变化。
自定义性: 提供了丰富的配置选项,用户可以自定义图表的外观和风格。
交互性: 支持交互式操作,用户可以通过缩放、平移和选择等方式与图表进行交互。
Matplotlib为数据科学家和分析师提供了强大的工具,用于将数据可视化,从而更好地理解数据模式和趋势。
应用案例

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
#
# # 生成信号
t = np.linspace(0, 1, 1000, endpoint=False)
signal_data = np.sin(2 * np.pi * 5 * t)
#
# # 添加噪声
noisy_signal = signal_data + 0.5 * np.random.normal(size=len(t))
#
# # 使用滤波器平滑信号
b, a = signal.butter(4, 0.1)
filtered_signal = signal.filtfilt(b, a, noisy_signal)

# 绘制原始信号和处理后的信号
plt.plot(t, noisy_signal, label='Noisy Signal')
plt.plot(t, filtered_signal, label='Filtered Signal')
plt.legend()
plt.show()
from scipy.stats import norm
import numpy as np
# # 生成正态分布随机样本
data = norm.rvs(size=1000, loc=0, scale=1)
#
# # 计算均值和标准差
mean_value = np.mean(data)
std_dev = np.std(data)
#
print("均值:", mean_value)
print("标准差:", std_dev)
import pandas as pd

# 读取CSV文件
df = pd.read_csv('E:\pythonProject\第一节课\大学排行.csv')

# 显示前几行数据
print(df.head())
from PIL import Image
import numpy as np
vec_el=np.pi/2.2
vec_az=np.pi/4.
depth=50.
im=Image.open("E:\\示例文本文件\\DSC03589.JPG").convert('L')
a=np.asarray(im).astype("float")
grad=np.gradient(a)
grad_x,grad_y=grad
grad_x=grad_x*depth/100.
grad_y=grad_y*depth/100.
dx=np.cos(vec_el)*np.cos(vec_az)
dy=np.cos(vec_el)*np.sin(vec_az)
dz=np.sin(vec_el)
A=np.sqrt(grad_x**2+grad_y**2+1.)
uni_x=grad_x/A
uni_y=grad_y/A
uni_z=1./A
a2=255*(dx*uni_x+dy*uni_y+dz*uni_z)
a2=a2.clip(0,255)
im2=Image.fromarray(a2.astype("uint8"))
im2.save("E:\\示例文本文件\\xiugaihoushouhui.JPG")