Files
task-3-1-3-Matrix-Fundament…/樊豐铭37.py
2026-04-16 15:55:34 +08:00

109 lines
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#练习一
import numpy as np
image = np.array([
[100, 150, 200],
[80, 120, 180],
[60, 90, 140]
], dtype=np.uint8)
print("原图:")
print(image)
print("-" * 30)
image_dark = image - 20
print("变暗20后")
print(image_dark)
print("-" * 30)
image_crop = image[0:2, 0:2]
print("裁剪左上角 2×2 区域:")
print(image_crop)
print("-" * 30)
image_flip = np.fliplr(image)
print("水平翻转后:")
print(image_flip)
#练习二
import numpy as np
img = np.array([
[255, 255, 0, 0 ],
[255, 255, 0, 0 ],
[0, 0, 255, 255],
[0, 0, 255, 255]
], dtype=np.uint8)
print("=== 原图 ===")
print(img)
print("-" * 30)
white_count = np.sum(img == 255)
black_count = np.sum(img == 0)
print("白色像素255数量", white_count)
print("黑色像素0数量", black_count)
print("-" * 30)
img_flip_lr = np.fliplr(img)
print("=== 水平翻转后 ===")
print(img_flip_lr)
print("-" * 30)
img_rot90_ccw = np.flipud(img.T)
print("=== 逆时针旋转90度后 ===")
print(img_rot90_ccw)
#练习三
import numpy as np
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]])
vector1 = feature_map1.flatten()
vector2 = feature_map2.flatten()
print("vector1:", vector1)
print("vector2:", vector2)
print("-" * 40)
euclidean_dist = np.linalg.norm(vector1 - vector2)
print("欧几里得距离:", euclidean_dist)
cos_sim = np.dot(vector1, vector2) / (np.linalg.norm(vector1) * np.linalg.norm(vector2))
print("余弦相似度:", cos_sim)
#练习四
import numpy as np
vocab = ["Python", "学习", "数据", "人工智能", "编程"]
doc1 = "Python学习编程"
doc2 = "Python人工智能数据"
def text_to_vector(text, vocab):
words = text.split()
vector = np.zeros(len(vocab))
for i, word in enumerate(vocab):
vector[i] = words.count(word)
return vector
v1 = text_to_vector(doc1, vocab)
v2 = text_to_vector(doc2, vocab)
print("===== 原始结果 =====")
print("doc1向量:", v1)
print("doc2向量:", v2)
cos_sim = np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))
print("余弦相似度:", cos_sim)
print("-" * 40)
vocab_new = ["Python", "学习", "数据", "人工智能", "编程", "机器"]
doc3 = "机器学习"
v3 = text_to_vector(doc3, vocab_new)
print("===== 新增词汇后 =====")
print("新词汇表:", vocab_new)
print("doc3 = 机器学习 的向量:", v3)