读书报告
一、Numpy
Numpy是一个用于处理大型多维数组和矩阵的库,提供了大量的数学函数来操作这些数组。基本的函数用法:
- 创建数组:
numpy.array() - 数组形状:
shape - 数组元素类型:
dtype - 数组元素总数:
size - 改变数组形状:
reshape() - 数组切片:
[] - 数组索引:
[] - 数组元素赋值:
= - 数组运算:
+, -, *, /, %, **
二、Scipy
Scipy是一个用于科学计算的库,提供了一系列的高级算法和便利的函数。基本的函数用法:
- 优化:
scipy.optimize.minimize(),scipy.optimize.root() - 插值:
scipy.interpolate.interp1d(),scipy.interpolate.griddata() - 积分:
scipy.integrate.quad(),scipy.integrate.simps() - 特殊函数:
scipy.special.exp(),scipy.special.erf() - 统计:
scipy.stats.norm(),scipy.stats.ttest_ind()
三、Pandas
Pandas是一个用于数据处理和分析的库,提供了DataFrame这种高效的二维标签数据结构。基本的函数用法:
- 创建DataFrame:
pandas.DataFrame() - 读取数据:
pandas.read_csv(),pandas.read_excel() - 选择列:
[] - 选择行:
iloc[],loc[] - 数据过滤:
df[df['column'] > value] - 数据统计:
df['column'].describe(),df['column'].mean(),df['column'].std() - 数据分组:
df.groupby('column') - 数据合并:
pd.concat([df1, df2]),pd.merge(df1, df2)
四、Matplotlib
Matplotlib是一个用于绘制图形的库,可以生成各种静态、动态、交互式的图表。基本的函数用法:
- 创建图形:
plt.figure(),plt.subplot() - 绘制线图:
plt.plot(),plt.scatter(),plt.bar(),plt.hist() - 设置标题和标签:
plt.title(),plt.xlabel(),plt.ylabel(),plt.legend() - 保存图形:
plt.savefig(),plt.show() - 图像处理:可以使用PIL库进行图像的读取、显示和保存,使用OpenCV库进行图像的预处理和特征提取。
五、 图像处理:我们可以使用NumPy的数组来表示图像的像素矩阵,然后使用SciPy中的滤波器对图像进行平滑处理。
import numpy as np
from scipy.ndimage import filters
from PIL import Image
# 读取图像并转换为灰度图
img = Image.open('example.jpg').convert('L')
# 将图像转换为NumPy数组
img_array = np.array(img)
# 使用高斯滤波器对图像进行平滑处理
smoothed_img_array = filters.gaussian_filter(img_array, sigma=3)
# 将处理后的NumPy数组转换回图像
smoothed_img = Image.fromarray(smoothed_img_array)
# 显示原始图像和平滑处理后的图像
img.show()
smoothed_img.show()
六、 图像分割:我们可以使用SciPy中的形态学操作对图像进行分割。
import numpy as np
from scipy.ndimage import morphology
from PIL import Image
# 读取图像并转换为灰度图
img = Image.open('example.jpg').convert('L')
# 将图像转换为NumPy数组
img_array = np.array(img)
# 定义一个结构元素(用于腐蚀操作)
structuring_element = np.ones((5, 5), dtype=np.uint8)
# 使用腐蚀操作对图像进行分割
segmented_img_array = morphology.binary_erosion(img_array > 128, structure=structuring_element)
# 将处理后的NumPy数组转换回图像
segmented_img = Image.fromarray(segmented_img_array * 255)
# 显示原始图像和分割后的图像
img.show()
segmented_img.show()
浙公网安备 33010602011771号