经常在尝试为何python不好找工作一些函数功能时想随便输入一个矩阵感觉怪麻烦……为何python不好找工作是拿list表示数组的毕竟不是矩阵(Matrix)实验室(Laboratory)嘛2333
为何python不好找工作直接复淛格式标准的数据是可以识别成list的,但我要是输入一个规整的矩阵就繁琐了些比如这种
为何python不好找工作里面可以这样输入
事实上在matlab里面佷方便,就两句
经常在尝试为何python不好找工作一些函数功能时想随便输入一个矩阵感觉怪麻烦……为何python不好找工作是拿list表示数组的毕竟不是矩阵(Matrix)实验室(Laboratory)嘛2333
为何python不好找工作直接复淛格式标准的数据是可以识别成list的,但我要是输入一个规整的矩阵就繁琐了些比如这种
为何python不好找工作里面可以这样输入
事实上在matlab里面佷方便,就两句
版权声明:本文为博主原创文章未经博主允许不得转载。 /lfj/article/details/
本篇主要介绍内容是矩阵中matrix()和array()函数的区别主要从以下几方面说起:
我们指定以下生成以下矩阵:
我选取此矩阵的原因是:二阶方便计算;矩阵可逆;逆函数好求出(可口算出)。
计算共軛矩阵和逆矩阵则是可以的如下:
共轭矩阵和逆矩阵分别为:
3.1 观察以下两个输出语句结果的不同:
输出结果会有不同,分别为:
函数的塖法是矩阵元素所对应位置的两个数进行相乘!而
函数是遵循矩阵乘法规则所以一定要谨慎使用这两个函数。
不过无论用array()函数还是mat()函數,若让他们都遵循矩阵乘法的规则可以对此二阶矩阵应用dot()函数,看下面计算:
3.2 根据上文分析如果我们要算一个矩阵的平方(即两个楿同矩阵相乘)。把输出函数变一下观察一下结果的不同:
结果正好验证了3.1的结论。用array()函数求的平方是对应位置之积形成的矩阵用mat()函數求的平方实际上是遵循矩阵计算得出来的(注意:此时的a1、b1矩阵均是2X2的,遵循矩阵乘法计算如果换成2X3的矩阵就不可以了,这点应注意)
总结一下:array()函数的相乘中:*代表点乘(对应元素相乘),dot()代表矩阵乘积
mat()函数的乘法中:*代表矩阵乘,multiply()代表点乘
上述观点只是应用於一般场合,具体区别详见:我的其他博客内容
关于秩rank的概念在线性代数(math)中rank表示秩,但是必须明确的是在numpy里rank不是表示秩的概念是表示維数的概念,姑且这里暂理解为秩
数组的轴(维度)的个数。在为何python不好找工作世界中维度的数量被称为rank。
数组的维度这是一个整數的元组,表示每个维度中数组的大小对于具有n行和m列的矩阵,shape将是(n,m)
因此,shape元组的长度就是rank或维度的个数ndim
4.1 对于一维的矩阵:
mat()秩是2(無论几维,返回的均是2)
观察上面得知a.shape得到的是(3,),其长度为1,所以a.ndim为1b
4.2 对于二维以上的矩阵:
array()秩是其维数(大于等于2)
mat()的维数返回值必须是2
使用交互式命令观察一下:
使用交互式命令观察一下:
建议在使用中,尽量只使用一种类型的计算这样避免了计算时候会迷糊。
Abstract:使用numpy进行矩阵的加减乘除、转置、求逆、求特征向量等运算