📜  NumPy-线性代数(1)

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

NumPy-线性代数

NumPy是Python中一个功能强大的数值运算库,提供了大量的高级数学函数和方法,其中包括线性代数函数。NumPy的线性代数模块(numpy.linalg)提供了numpy数组的线性代数操作,如求逆矩阵、奇异值分解、特征值分解、求解线性方程组等,让程序员可以快速方便地进行线性代数运算。

numpy.linalg库主要功能
numpy.linalg.det()

计算矩阵的行列式。可以通过此方法判断矩阵是否可逆。

import numpy as np

a = np.array([[1, 2], [3, 4]])
print(np.linalg.det(a))  # 输出为-2.0
numpy.linalg.inv()

计算矩阵的逆矩阵。

import numpy as np

a = np.array([[1, 2], [3, 4]])
print(np.linalg.inv(a))  # 输出为[[-2. , 1. ], [ 1.5, -0.5]]
numpy.linalg.solve()

解线性方程组。

import numpy as np

a = np.array([[3, 1], [1, 2]])
b = np.array([9, 8])
print(np.linalg.solve(a, b))  # 输出为[2., 3.]
numpy.linalg.eig()

计算矩阵的特征值和特征向量。

import numpy as np

a = np.array([[1, 2], [3, 4]])
eig_vals, eig_vecs = np.linalg.eig(a)
print("Eigenvalues: ", eig_vals)  # 输出为[(-0.3722813232690143+0j), (5.372281323269014+0j)]
print("Eigenvectors: \n", eig_vecs)  # 输出为[[-0.82456484,  -0.41597356], [0.56576746,  -0.90937671]]
numpy.linalg.svd()

奇异值分解。

import numpy as np

a = np.array([[1, 2], [3, 4], [5, 6]])
u, s, vh = np.linalg.svd(a)
print("U: \n", u)
print("S: \n", s)
print("Vh: \n", vh)
numpy.linalg.pinv()

计算矩阵的Moore-Penrose伪逆矩阵。

import numpy as np

a = np.array([[1, 2], [3, 4]])
a_inv = np.linalg.pinv(a)
print(a_inv)  # 输出为[[-2. , 1. ], [ 1.5, -0.5]]
总结

NumPy的线性代数模块提供了丰富的线性代数操作,这些方法可以快速地进行线性代数计算操作。程序员可以使用这些方法来解决矩阵求逆、线性方程组求解、奇异值分解等问题。