ML~线性代数~python

机器学习中用到的线性代数,就是为了把复杂的计算放在矩阵里计算。

创建矩阵

import numpy as np #导入numpy库

A = np.array([[3,4],[2,16]]) #创建矩阵
B = np.array([[1,2],[5,6]])

矩阵加法

import numpy as np

#线性代数
A = np.array([[3,4],[2,16]])
B = np.array([[1,2],[5,6]])
print(A+B) #矩阵加法

#-----------输出结果------------
#[[ 4  6]
# [ 7 22]]

如果没用用np.array创建矩阵则会输出以下这样

A1 = [[3,4],[2,16]]
B1 = [[1,2],[5,6]]
print(A1+B1)

#-----------输出结果-----------
#[[3, 4], [2, 16], [1, 2], [5, 6]]

矩阵乘法(与实数相乘)

import numpy as np

A = np.array([[3,4],[2,16]])
B = np.array([[1,2],[5,6]])

print(2*A) #矩阵乘法,如果不用array就是输出2次A矩阵

#-----------输出结果------------
#[[ 6  8]
# [ 4 32]]

矩阵乘法(矩阵相乘),不遵循交换律(逆矩阵特殊),遵循结合律

import numpy as np

A = np.array([[3,4],[2,16]])
B = np.array([[1,2],[5,6]])

print(np.dot(A,B)) #矩阵相乘

#-----------输出结果------------
#[[ 23  30]
# [ 82 100]]

矩阵转置:将矩阵沿着45度角翻转

import numpy as np

C = np.array([[1,2,3],[4,5,6]])
print(C.T) #C的转置矩阵

#-----------输出结果------------
#[[1 4]
# [2 5]
# [3 6]]

逆矩阵:与原矩阵相乘等于单元矩阵(1)

import numpy as np

A = np.array([[3,4],[2,16]])
B = np.linalg.inv(A) #求A的逆矩阵赋给B

print(B)
print(np.dot(A,B))
print(np.dot(B,A))

#-----------输出结果------------
#B:
#[[ 0.4   -0.1  ]
# [-0.05   0.075]]
#A*B
#[[ 1.  0.]
# [ 0.  1.]]
#B*A
#[[ 1.  0.]
# [ 0.  1.]]
posted @ 2017-05-10 11:09  Sooda  阅读(353)  评论(0编辑  收藏  举报