import numpy as np
# 点乘操作
# 数组 a 的形状是 (2, 3),表示一个 2 行 3 列的矩阵
a = np.array([[1, 2, 3],
[4, 5, 6]])
# 数组 b 的形状是 (3, 2),表示一个 3 行 2 列的矩阵
b = np.array([[9, 8],
[6, 5],
[3, 2]])
# 打印数组 a 和 b 的内容
print("数组 a:")
print(a)
print("数组 b:")
print(b)
# 点乘(矩阵乘法):a 是 (2,3) 形状,b 是 (3,2) 形状,结果将是 (2,2) 形状的矩阵
print("点乘结果:")
print(a.dot(b)) # 或者使用 a @ b
# 转置后进行逐元素相乘(广播机制)
print("数组 a 的转置:")
print(a.T) # a.T 的形状为 (3,2)
print("数组 b:")
print(b) # b 的形状也是 (3,2)
# 对转置后的 a 和 b 进行逐元素相乘(数乘)
print("转置后的数组 a 与 b 的逐元素相乘:")
print(a.T * b) # 两个 (3,2) 数组逐元素相乘
# 一维数组的数乘和点乘
# 创建两个二维数组 w 和 x,它们的形状均为 (1,3)
w = np.array([[1, 1, 1]])
x = np.array([[2, 2, 2]])
# 逐元素相乘:对应位置的元素相乘,结果仍是一个 (1,3) 的数组
print("一维数组 w 和 x 的数乘(逐元素相乘):")
print(w * x)
# 点乘:x 是 (1,3) 形状,w.T 是 (3,1) 形状,结果是一个 (1,1) 的数组,即标量
print("一维数组 w 和 x 的点乘:")
print(np.dot(x, w.T)) # 结果为 1*2 + 1*2 + 1*2 = 6
(02)线性回归--(01)数组乘法运算详解
于 2025-05-28 11:32:28 首次发布