numpy.dot numpy.linalg.eig numpy.linalg.svd np.linalg.inv 用法 + 例子

numpy.dot()

x是mn 矩阵 ,y是nm矩阵

则x.dot(y) 得到m*m矩阵

>>> np.dot(3, 4)
12

>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)

>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
       [2, 2]])

numpy.linalg.eig()

numpy.linalg.eig(a)
a:矩阵
返回
w:特征值
v:特征向量

>>> from numpy import linalg as LA

>>> w, v = LA.eig(np.diag((1, 2, 3)))
>>> w; v
array([ 1.,  2.,  3.])
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])


>>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))
>>> w; v
array([ 1. + 1.j,  1. - 1.j])
array([[ 0.70710678+0.j        ,  0.70710678+0.j        ],
       [ 0.00000000-0.70710678j,  0.00000000+0.70710678j]])


>>> a = np.array([[1, 1j], [-1j, 1]])
>>> w, v = LA.eig(a)
>>> w; v
array([  2.00000000e+00+0.j,   5.98651912e-36+0.j]) # i.e., {2, 0}
array([[ 0.00000000+0.70710678j,  0.70710678+0.j        ],
       [ 0.70710678+0.j        ,  0.00000000+0.70710678j]])

numpy.linalg.svd()

奇异值分解

在这里插入图片描述

其中s是对矩阵a的奇异值分解

np.linalg.inv():

矩阵求逆

转置:

array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

>>>arr.T
array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])

猜你喜欢

转载自blog.csdn.net/weixin_44355591/article/details/104534619