10.Numpy矩阵操作
矩阵:
方法 | 概述 |
---|---|
np.mat | 创建矩阵 |
np.matrix | 创建矩阵,新版本将会废弃 |
np.bmat | 数组的拼接转换 |
matrix1+matrix2 | 矩阵加法 |
matrix1-matrix2 | 矩阵减法 |
matrix1*matrix2 | 矩阵乘法 |
num*matrix | 数乘法 |
matrix.T | 转置 |
matrix.I | 求逆 |
np.multiply(matrix1,matrix2) | 对应元素相乘 |
举例:
矩阵创建 np.mat:
mart1 = np.mat('1,2,3;4,5,6;7,8,9')
print(mart1)
print(type(mart1))
[[1 2 3]
[4 5 6]
[7 8 9]]
<class 'numpy.matrix'>
矩阵创建 np.matrix:
mart2 = np.matrix([[1, 0, 1], [2, 0, 2], [0, 0, 1]])
print(mart2)
print(type(mart2))
[[1 0 1]
[2 0 2]
[0 0 1]]
<class 'numpy.matrix'>
矩阵的合并np.bmat:
arr1 = np.eye(3)
arr2 = 2 * np.eye(3)
print(np.bmat('arr1 arr2;arr2 arr1'))
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]
[2. 0. 0.]
[0. 2. 0.]
[0. 0. 2.]]
矩阵加法 matrix1+matrix2:
mart1 = np.mat('1,2,3;4,5,6;7,8,9')
print(mart1)
print('----------------')
mart2 = np.matrix([[1, 0, 1], [2, 0, 2], [0, 0, 1]])
print(mart2)
print('----------------')
print(mart1+mart2)
[[1 2 3]
[4 5 6]
[7 8 9]]
----------------
[[1 0 1]
[2 0 2]
[0 0 1]]
----------------
[[ 2 2 4]
[ 6 5 8]
[ 7 8 10]]
矩阵减法 matrix1-matrix2:
mart1 = np.mat('1,2,3;4,5,6;7,8,9')
print(mart1)
print('----------------')
mart2 = np.matrix([[1, 0, 1], [2, 0, 2], [0, 0, 1]])
print(mart2)
print('----------------')
print(mart1-mart2)
[[1 2 3]
[4 5 6]
[7 8 9]]
----------------
[[1 0 1]
[2 0 2]
[0 0 1]]
----------------
[[0 2 2]
[2 5 4]
[7 8 8]]
矩阵乘法matrix1*matrix2:
mart1 = np.mat('1,2,3;4,5,6;7,8,9')
print(mart1)
print('----------------')
mart2 = np.matrix([[1, 0, 1], [2, 0, 2], [0, 0, 1]])
print(mart2)
print('----------------')
print(mart1*mart2)
# 乘法 这边 用每一行乘每一列
# 比如 第一行 1*1+2*2+3*0 = 5,为 1 1 位置元素
# 第一行 1*0+2*0+3*0=0 为 1 2 位置元素
# 第一行 1*1+2*2 +3 *1 = 8 为 1 3 位置元素
# 第二行 4*1+5*2+6*0 = 14 为 2 1 位置元素
# 以此类推
[[1 2 3]
[4 5 6]
[7 8 9]]
----------------
[[1 0 1]
[2 0 2]
[0 0 1]]
----------------
[[ 5 0 8]
[14 0 20]
[23 0 32]]
转置matrix.T:
简单理解 就是 行转列
mart1 = np.mat('1,2,3;4,5,6;7,8,9')
print(mart1)
print('----------------')
print(mart1.T)
[[1 2 3]
[4 5 6]
[7 8 9]]
----------------
[[1 4 7]
[2 5 8]
[3 6 9]]
求逆matrix.I:
线性代数知识.......
mart1 = np.mat('1,2,3;4,5,6;7,8,9')
print(mart1)
print('----------------')
print(mart1.I)
[[1 2 3]
[4 5 6]
[7 8 9]]
----------------
[[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]
[-6.30503948e+15 1.26100790e+16 -6.30503948e+15]
[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]]