1.5 单位矩阵
np.identity(3)
'''
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
'''
1.6 矩阵的逆
A = [[1.0,2.0],[3.0,4.0]]
A_inv = np.linalg.inv(A)
print("A 的逆矩阵: ", A_inv)
'''
A 的逆矩阵: [[-2. 1. ]
[ 1.5 -0.5]]
'''
1.7 范数
a = np.array([1.0,3.0])
print("向量 2 范数: ", np.linalg.norm(a, ord=2))
print("向量 1 范数: ", np.linalg.norm(a, ord=1))
print("向量无穷范数: ", np.linalg.norm(a, ord=np.inf))
'''
向量 2 范数: 3.1622776601683795
向量 1 范数: 4.0
向量无穷范数: 3.0
'''
a = np.array([[1.0,3.0],[2.0,1.0]])
print("矩阵 F 范数: ", np.linalg.norm(a, ord="fro"))
'''
矩阵 F 范数: 3.872983346207417
'''
1.8 特征值分解
A = np.array([[1.0,2.0,3.0],
[4.0,5.0,6.0],
[7.0,8.0,9.0]])
# 计算特征值
print("特征值: ", np.linalg.eigvals(A))
# 计算特征值和特征向量
eigvals, eigvectors = np.linalg.eig(A)
print("特征值: ", eigvals)
print("特征向量: ", eigvectors)
'''
特征值: [ 1.61168440e+01 -1.11684397e+00 -9.75918483e-16]
特征值: [ 1.61168440e+01 -1.11684397e+00 -9.75918483e-16]
特征向量: [[-0.23197069 -0.78583024 0.40824829]
[-0.52532209 -0.08675134 -0.81649658]
[-0.8186735 0.61232756 0.40824829]]
'''
1.9 奇异值分解
A = np.array([[1.0,2.0,3.0],
[4.0,5.0,6.0]])
U, D, V = np.linalg.svd(A)
print("U: ", U)
print("D: ", D)
print("V: ", V)
'''
U: [[-0.3863177 0.92236578]
[-0.92236578 -0.3863177 ]]
D: [9.508032 0.77286964]
V: [[-0.42866713 -0.56630692 -0.7039467 ]
[-0.80596391 -0.11238241 0.58119908]
[ 0.40824829 -0.81649658 0.40824829]]
'''