读书报告
25信计程果学号2025102803060119
- numpy 基础操作
numpy是Python科学计算的核心库,提供了高效的多维数组与数值计算工具。
import numpy as np
1. 创建数组
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.arange(0, 10, 2)
arr3 = np.linspace(0, 1, 5)
2. 数组运算
print("数组求和:", arr1.sum())
print("数组均值:", arr1.mean())
print("矩阵乘法:\n", np.dot(arr1.reshape(5,1), arr1.reshape(1,5)))
2. scipy 基础操作
scipy基于numpy扩展了科学计算、统计、信号处理等高级功能。
from scipy import stats, integrate
1. 正态分布概率密度
x = np.linspace(-3, 3, 100)
pdf = stats.norm.pdf(x, loc=0, scale=1)
2. 数值积分
result, error = integrate.quad(lambda x: x**2, 0, 1)
print("x^2在[0,1]区间的积分结果:", result)
3. pandas 基础操作
pandas是用于结构化数据处理与分析的工具库。
import pandas as pd
创建DataFrame
data = {
"姓名": ["张三", "李四", "王五"],
"成绩": [85, 92, 78],
"班级": ["一班", "二班", "一班"]
}
df = pd.DataFrame(data)
数据筛选与统计
print("一班学生成绩:\n", df[df["班级"] == "一班"])
print("成绩平均值:", df["成绩"].mean())
4. matplotlib 基础操作
matplotlib是Python数据可视化的核心库。
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y, color="blue", label="sin(x)")
plt.title("正弦函数图像")
plt.legend()
plt.savefig("sin_plot.png")
plt.show()
二、图像处理应用(评分点3)
示例:图像灰度化与边缘检测
本示例结合numpy、scipy和matplotlib,实现图像灰度化、边缘检测与可视化。
实现代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import sobel
from PIL import Image
1. 读取并转换为灰度图像
img = Image.open("test.jpg").convert("L")
img_arr = np.array(img)
2. Sobel算子边缘检测
dx = sobel(img_arr, axis=0)
dy = sobel(img_arr, axis=1)
edge_img = np.hypot(dx, dy)
3. 可视化结果
plt.figure(figsize=(12, 4))
plt.subplot(131)
plt.imshow(img_arr, cmap="gray")
plt.title("原图(灰度)")
plt.axis("off")
plt.subplot(132)
plt.imshow(edge_img, cmap="gray")
plt.title("边缘检测结果")
plt.axis("off")
plt.subplot(133)
plt.hist(img_arr.flatten(), bins=50, color="gray")
plt.title("灰度直方图")
plt.savefig("image_process.png")
plt.show()
效果说明
-
原图转为灰度图像,便于后续处理;
-
使用Sobel算子提取图像边缘,突出轮廓信息;
-
绘制灰度直方图,直观展示图像像素分布。
(此处可附生成的图像处理结果截图)
浙公网安备 33010602011771号