矩阵转置np.transpose(a)
import numpy as np
a= [0.26,0,0.52,0,0,0,0,0,0,0,0]
np.transpose(a)
np.shape(np.transpose(a))
矩阵求逆 S**-1
S = np.mat([[2.59,0],
[0,2.34]])
print(S**-1)
奇异值分解 SVD
import numpy as np
A= np.mat([[1,1,1,1,0,0,0,0,0,0,0],
[0,1,0,0,1,0,0,0,0,0,0],
[0,0,1,1,0,0,0,0,0,0,0],
[0,0,1,0,1,0,0,0,0,0,1],
[0,0,0,1,0,0,0,0,0,1,0],
[0,0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,1,1,1,0,0,0],
[0,0,0,0,0,1,0,0,0,1,0],
[1,0,0,0,0,0,1,1,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0],
[0,0,0,0,0,0,0,0,1,0,1]])
U,S,V = np.linalg.svd(A)
print(U)
print(S)
print(V)
如果此时我们保存两个特征值,那么取U的前两列,V的前两行,将S扩充为对角矩阵即可。
余弦相似度
import numpy as np
def cos_sim(vector_a, vector_b):
"""
计算两个向量之间的余弦相似度
:param vector_a: 向量 a
:param vector_b: 向量 b
:return: sim
"""
vector_a = np.mat(vector_a)
vector_b = np.mat(vector_b)
num = float(vector_a * vector_b.T)
denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b)
cos = num / denom
sim = 0.5 + 0.5 * cos
return sim