上传文件至 /

This commit is contained in:
2026-04-16 16:02:35 +08:00
parent 6145320e6f
commit 03dc76d248

114
ljp.py Normal file
View File

@@ -0,0 +1,114 @@
# ====================== 练习1图像矩阵基本操作 ======================
print("=" * 50)
print("练习1图像矩阵操作")
print("=" * 50)
image = np.array([
[100, 150, 200],
[80, 120, 180],
[60, 90, 140]
], dtype=np.uint8)
print("原图:")
print(image)
# 1. 整体变暗 20
darker = image - 20
print("\n变暗20")
print(darker)
# 2. 裁剪左上角 2×2
crop = image[0:2, 0:2]
print("\n裁剪左上角2×2")
print(crop)
# 3. 水平翻转
flip_horizontal = np.fliplr(image)
print("\n水平翻转:")
print(flip_horizontal)
# ====================== 练习24×4 黑白图像 ======================
print("\n" + "=" * 50)
print("练习24×4图像矩阵")
print("=" * 50)
img = np.array([
[255, 255, 0, 0],
[255, 255, 0, 0],
[0, 0, 255, 255],
[0, 0, 255, 255]
], dtype=np.uint8)
# 统计像素
count_white = np.sum(img == 255)
count_black = np.sum(img == 0)
print("白色像素:", count_white)
print("黑色像素:", count_black)
# 水平翻转
flip_h = np.fliplr(img)
print("\n水平翻转:")
print(flip_h)
# 逆时针旋转90度
rotate_90_ccw = np.flipud(img.T)
print("\n逆时针旋转90度")
print(rotate_90_ccw)
# ====================== 练习3特征向量相似度计算 ======================
print("\n" + "=" * 50)
print("练习3特征向量与相似度")
print("=" * 50)
feature_map1 = np.array([[1, 0, 1],
[0, 1, 0],
[1, 0, 1]])
feature_map2 = np.array([[1, 1, 1],
[1, 0, 0],
[1, 0, 0]])
vec1 = feature_map1.flatten()
vec2 = feature_map2.flatten()
print("展平向量1", vec1)
print("展平向量2", vec2)
# 欧氏距离
euclidean_dist = np.linalg.norm(vec1 - vec2)
print("\n欧几里得距离:", euclidean_dist)
# 余弦相似度
def cos_sim(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
print("余弦相似度:", cos_sim(vec1, vec2))
# ====================== 练习4文本向量化 ======================
print("\n" + "=" * 50)
print("练习4文本向量化")
print("=" * 50)
vocab = ["Python", "学习", "数据", "人工智能", "编程"]
doc1 = "Python学习编程"
doc2 = "Python人工智能数据"
def text2vec(text, vocab):
words = text.split()
vec = np.zeros(len(vocab))
for i, w in enumerate(vocab):
vec[i] = words.count(w)
return vec
v1 = text2vec(doc1, vocab)
v2 = text2vec(doc2, vocab)
print("句子1向量", v1)
print("句子2向量", v2)
print("余弦相似度:", cos_sim(v1, v2))
# 扩展词汇表
vocab_new = ["Python", "学习", "数据", "人工智能", "编程", "机器"]
doc3 = "机器学习"
v3 = text2vec(doc3, vocab_new)
print("\n扩展词汇表后句子3向量", v3)