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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值