📅  最后修改于: 2023-12-03 15:03:19.344000             🧑  作者: Mango
NumPy是Python科学计算的重要库之一,主要用于处理数组,矩阵,以及各种数学操作。其中的矩阵支持是NumPy的一大特点,也是得到广泛应用的原因之一。
NumPy中的矩阵定义方式如下:
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(a)
输出:
[[1 2]
[3 4]]
可以看出,定义一个矩阵,只需要用np.array()
函数将一个嵌套列表传入即可。这里定义了一个2x2的矩阵。
矩阵的基本运算也是NumPy中的一大特点,例如:
a = np.array([[1, 2], [3, 4]])
b = np.array([[4, 3], [2, 1]])
print(a + b)
print(a - b)
print(a * b) # 注意这里的*是元素级别的乘法
print(a @ b) # 矩阵乘法需要用@
输出:
[[5 5]
[5 5]]
[[-3 -1]
[ 1 3]]
[[4 6]
[6 4]]
[[ 8 5]
[20 13]]
NumPy提供了一系列的函数用于得到一个矩阵的转置,求逆以及行列式。例如:
a = np.array([[1, 2], [3, 4]])
print(a.T) # 转置
print(np.linalg.inv(a)) # 矩阵求逆
print(np.linalg.det(a)) # 矩阵求行列式
输出:
[[1 3]
[2 4]]
[[-2. 1. ]
[ 1.5 -0.5]]
-2.0
在数学中,将一个矩阵分解为两个或多个矩阵相乘的形式是非常常见的。例如,将矩阵分解为三角矩阵,特征值分解 etc. NumPy提供了一些函数用于矩阵的分解操作。例如:
a = np.array([[1, 2], [3, 4]])
q, r = np.linalg.qr(a) # QR分解
print(q)
print(r)
输出:
[[-0.31622777 -0.9486833 ]
[-0.9486833 0.31622777]]
[[-3.16227766 -4.42718872]
[ 0. -0.63245553]]
在NumPy中,除了上述的基本运算和函数操作,矩阵在科学计算中的应用变得更加广泛。例如,利用矩阵来描述数据集,使用矩阵运算完成图片处理,矩阵在机器学习和深度学习领域中的应用,都在很大程度上推动了程序在性能方面的极限。
这里我们介绍了NumPy中关于矩阵的一些常见操作,包括矩阵的定义,基本运算,转置和分解矩阵等内容。在实际科学计算中,很有可能会用到一些高级的矩阵函数。因此,进一步深入了解NumPy中的矩阵支持,有助于我们更好地理解实际应用领域中的问题。