六、ndarray数学运算

suaxi
2025-11-16 / 0 评论 / 6 阅读 / 正在检测是否收录...
# 算术运算
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a ** 2)

[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4  0.5 ]
[1 4 9]
# python 普通数组的拼接
c = [1, 2, 3]
d = [4, 5, 6]
print(c + d)

[1, 2, 3, 4, 5, 6]
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[4, 5, 6], [7, 8, 9]])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a ** 2)

[[ 5  7  9]
 [11 13 15]]
[[-3 -3 -3]
 [-3 -3 -3]]
[[ 4 10 18]
 [28 40 54]]
[[0.25       0.4        0.5       ]
 [0.57142857 0.625      0.66666667]]
[[ 1  4  9]
 [16 25 36]]
# 数组与标量的算术运算
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a + 3)
print(a * 3)

[[4 5 6]
 [7 8 9]]
[[ 3  6  9]
 [12 15 18]]
# 广播机制:1. 获取形状,2. 判断是否可广播(行列要相对应)
a = np.array([1, 2, 3])  # 1行3列
b = np.array([[4], [5], [6]])  # 3行1列

"""
a
1 2 3
1 2 3
1 2 3

b
4 4 4
5 5 5
6 6 6
"""

print(a + b)

[[5 6 7]
 [6 7 8]
 [7 8 9]]
# 矩阵运算
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[4, 5, 6], [7, 8, 9], [10, 11, 12]])
print(a + b)

"""
矩阵乘法
(1, 1) = a(1, 1) * b(1, 1) + a(1, 2) * b (2, 1) + a(1, 3) * b(3, 1) 
"""
print(a @ b)

[[ 5  7  9]
 [11 13 15]
 [17 19 21]]
[[ 48  54  60]
 [111 126 141]
 [174 198 222]]
0

评论 (0)

取消