NumPy矩阵运算

矩阵初始化

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]]

posted @ 2019-12-21 20:01  ACWink  阅读(140)  评论(0编辑  收藏  举报