📜  NumPy-矩阵库(1)

📅  最后修改于: 2023-12-03 15:03:19.344000             🧑  作者: Mango

NumPy-矩阵库介绍

NumPy是Python科学计算的重要库之一,主要用于处理数组,矩阵,以及各种数学操作。其中的矩阵支持是NumPy的一大特点,也是得到广泛应用的原因之一。

1. 矩阵定义与基本运算

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]]
2. 矩阵的转置,求逆,和行列式

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
3. 矩阵分解

在数学中,将一个矩阵分解为两个或多个矩阵相乘的形式是非常常见的。例如,将矩阵分解为三角矩阵,特征值分解 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]]
4. 矩阵的应用

在NumPy中,除了上述的基本运算和函数操作,矩阵在科学计算中的应用变得更加广泛。例如,利用矩阵来描述数据集,使用矩阵运算完成图片处理,矩阵在机器学习和深度学习领域中的应用,都在很大程度上推动了程序在性能方面的极限。

总结

这里我们介绍了NumPy中关于矩阵的一些常见操作,包括矩阵的定义,基本运算,转置和分解矩阵等内容。在实际科学计算中,很有可能会用到一些高级的矩阵函数。因此,进一步深入了解NumPy中的矩阵支持,有助于我们更好地理解实际应用领域中的问题。