重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、首先打开pycharm软件,新建一个python文件并导入numpy库。
我们提供的服务有:网站设计制作、网站建设、微信公众号开发、网站优化、网站认证、会同ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的会同网站制作公司
2、然后创建矩阵A,这里先创建一个两行两列的数组,在用numpy的mat函数将数组转换为矩阵。
3、接着计算矩阵A的逆矩阵,逆矩阵是通过A.I求得。
4、求出了矩阵A的逆矩阵后,用矩阵B乘以这个逆矩阵就是矩阵的除法了,即为矩阵B除以矩阵A的值。
numpy.random包可以实现这一功能。numpy包是python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效的多,同时该结构也可以用来表示矩阵。
from
numpy
import
random
randarray
=
random.random(size=(2,4))
random函数接收需要生成随机矩阵的形状的元组作为唯一参数。上面的代码将会返回一个两行四列的随机矩阵,随机数的值位于0到1之间,矩阵是numpy.array类型。除了random函数外,还有生成整数随机矩阵的函数randint等等。
使用python表示矩阵的方法:
使用“import numpy”语句导入numpy包。用numpy包的array函数创建一个二维数组,这个二维数组就表示矩阵
示例代码如下:
执行结果如下:
使用numpy创建矩阵有2种方法,一种是使用numpy库的matrix直接创建,另一种则是使用array来创建。首先加载numpy库,然后分别用上面说的2种方法来分别构建一个4×3的矩阵,如图
请点击输入图片描述
2
矩阵创建好了,大家看到了2个矩阵长得差不多,是否相等呢?我们用==(python中用==表示等于)来试试看看,如下图
请点击输入图片描述
3
我们下面看看2个矩阵相乘的结果,可以看到使用matrix创建的矩阵m1乘以自身,结果报错了:因为矩阵相乘需要满足一定的条件[1];而使用array创建的矩阵m2乘以自身,结果并没有报错,因为这里用的是Hadamard乘法[2];而m1×m2也报错了,说明只要有一个是matrix,就不能用Hadamard乘法,如图所示
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
4
下面看几个特殊矩阵[3]:使用np.zeros可以生成零矩阵,使用np.ones可以生成1矩阵,使用np.identity可以生成单位矩阵,使用np.diag可以生成对角矩阵,如图所示
请点击输入图片描述
请点击输入图片描述
5
最后看看矩阵的行向量和列向量提取方法。例如m1[[0,3]]表示提取矩阵m1的第0行和第3行[4],当然也可以用m1[[True,False,False,True]]来达到同样的效果,True就是表示对应的行要提取;而m1[:,[-2,-1]]则是提取矩阵的最后2列的列向量,m1[:,[False,True,True]]的一样可以提取最后2列的列向量,如图所示
请点击输入图片描述
请点击输入图片描述
END
注意事项
[1]在高等数学或者线性代数等已经学过了当后面的矩阵的行数等于前面矩阵的列数时,2个矩阵才可以相乘
[2]Hadamard指的是2个m×n的矩阵相乘,结果仍然是m×n的矩阵,结果为对应元素的乘积
[3]单位矩阵是特殊的对角矩阵,零(1)矩阵是指元素全部是0(1)的矩阵
[4]矩阵的第一行是从0开始编号的,python中的各种编号基本上都是从0开始的
import random #导入随机数模块
m=10
n=10
matrix = [[0 for i in range(m)] for i in range(n)] #定义数组
for row in range(0,m):
for col in range(0,n):
matrix[row].append(random.randint(0,101)) #赋值
for row in range(0,m):
print matrix[row]#打印
结果