矩阵初始化

import numpy as np
m=np.zeros([3,5])#
print (m)
n=np.ones([3,5])
print(n)

生成3X5的矩阵值为0,1;

#生成随机数矩阵

mn=np.random.rand(3,5)#3行4列的0-1之间的随机数矩阵
print(mn)

#单位矩阵
z=np.eye(4)#4行4列一条对角线为1的单位矩阵
print (z)

2,矩阵的元素运算

  • /
    矩阵相加相减的条件
    必须矩阵大小相等
    eg:
import numpy as np
z=np.eye(4)#这是一个对角线为1的矩阵
print (z)
n=np.ones([4,4])
print (n)
print(z+n)

矩阵数乘:一个数乘以整个矩阵

import numpy as np
z=np.mat([[1,2,3],[4,5,6],[7,8,9]])
z=10*z
print (z)

矩阵所有元素求和
#这里区别sum(),和np.sum();sum()返回的是每一列的和组成的裂变,np.sum()返回矩阵和

import numpy as np
n=np.mat([[1,2,3],[4,5,6],[7,8,9]])
print (np.sum(n))

矩阵元素的积
1.如果两个矩阵维度相同,则乘相同位置数相乘

import numpy as np
n=np.random.rand(3,3)#生成3X3的矩阵值在0-1之间
print (n)
m=np.eye(3)#单位矩阵
print (m)
print (np.multiply(n,m))#也可以用‘*’号

输出:

[[0.26886197 0.92144212 0.62190632]
 [0.11934666 0.83958397 0.1564729 ]
 [0.41122839 0.87522917 0.82239665]]
 [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
 [[0.26886197 0. 0. ]
 [0. 0.83958397 0. ]
 [0. 0. 0.82239665]]

2.两个矩阵维度不同:在大的矩阵中找到与另一个大小一样的矩阵相乘,得到一个列表

import numpy as np
n=np.mat([[1,2,3],[4,5,6],[7,8,9]])
m=np.mat([[2,2,2]])
print (np.multiply(n,m))

输出:

[[ 2 4 6]
 [ 8 10 12]
 [14 16 18]]

矩阵个元素的二次幂

import numpy as np
n=np.mat([[1,2,3],[4,5,6],[7,8,9]])
print (np.power(n,2))

输出:

[[ 1 4 9]
 [16 25 36]
 [49 64 81]]

3.矩阵的乘法

from numpy import *
n=mat([[1,2,3],[4,5,6],[7,8,9]])
m=mat([[1],[2],[3])
print (n)
print(m)
print(n*m)#1*1+2*2+3*3=14

输出:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
 [[1]
 [2]
 [3]]
 [[14]
 [32]
 [50]]

4.矩阵的转置

from numpy import *
n=mat([[1,2,3],[4,5,6],[7,8,9]])
print (n.T)#90度向左转
print(n.transpose)#https://blog.csdn.net/xiongchengluo1129/article/details/79017142

5.矩阵的其他操作

行列

from numpy import *
m=mat([[1,2,3],[4,5,6],[7,8,9]])
[m,n]=shape(m)
print ('H L',m,n)#矩阵的行列数

输出:

H L 3 3

切片

from numpy import *
m=mat([[1,2,3],[4,5,6],[7,8,9]])
n=m[0]#按行切片
print (n)
k=m.T[0]#按列切片
print (k)

输出:

[[1 2 3]]
 [[1 4 7]]

矩阵复制

from numpy import *
m=mat([[1,2,3],[4,5,6],[7,8,9]])
n=m.copy()#矩阵的复制
print(n)

输出:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

追求吾之所爱