3.6 矩阵运算
2017-07-23 15:15
127 查看
3.6.1 矩阵运算规则
矩阵的加减法运算规则与数组相同,即元素运算,其结果返回新的矩阵。倍乘数运算也是矩阵内元素乘以倍数,返回新的矩阵,且倍数应置于运算符左边。矩阵乘法运算规则是,只有当乘法运算符左边矩阵的列数等于右边矩阵的行数时,两个矩阵才能进行乘法运算,即m×n矩阵与n×p矩阵满足相乘条件,且位置不能互换。具体步骤是,左矩阵第一行乘以右矩阵第一列分别相乘,第一个数乘第一个数,乘完之后相加,即为结果的第一行第一列的数,依次往下运算 。
3.6.2 matrix对象
NumPy和Matlab不一样,对于多维数组的运算,缺省情况下并不使用矩阵运算,可以调用相应的函数对数组进行矩阵运算。NumPy库提供了matrix类,使用matrix类创建矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算。示例代码:>>>m1 = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #直接生成矩阵对象 >>>m1 matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>>a = np.arange(9).reshape((3, 3)) >>>m2 = np.matrix(a) #将数组转换成矩阵 >>>m2 matrix([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>>m1 + m2 #矩阵加法即元素相加,与数组运算一样 matrix([[ 1, 3, 5], [ 7, 9, 11], [13, 15, 17]]) >>>m3 = m1*m2 #矩阵乘法 >>>m3 matrix([[ 24, 30, 36], [ 51, 66, 81], [ 78, 102, 126]]) >>>type(m3) numpy.matrixlib.defmatrix.matrix
3.6.3 数组的点积
ufunc提供的dot()函数计算两个数组的点积,其满足矩阵乘法运算规则,它返回的是一个标量(只有大小没有方向的一个值)。示例代码:>>>a1 = np.arange(1, 10).reshape((3, 3)) >>>a1 array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>>a2 = np.arange(9).reshape((3, 3)) >>>a2 array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>>a3 = a1.dot(a2) >>>a3 array([[ 24, 30, 36], [ 51, 66, 81], [ 78, 102, 126]]) >>>type(a3) numpy.ndarray >>>a4 = np.dot(a1, a2) #点积运算的另一种形式,等价于a1.dot(a2) >>>a4 array([[ 24, 30, 36], [ 51, 66, 81], [ 78, 102, 126]])
以上两个示例显示,数组点积的运算规则与矩阵乘法相同,不过点积返回的对象a3是ndarray类型,矩阵乘法返回的对象m3是matrix类型。
相关文章推荐
- NumPy学习笔记(2)--Array数组和矩阵基本运算
- 【R语言系列】R语言中矩阵运算
- 稀疏矩阵的加减法、乘法、求逆运算
- Pandas 矩阵运算
- 矩阵运算性质总结
- 8. 稀疏矩阵的乘法运算
- java 简单矩阵乘法运算
- OpenCV中简单矩阵运算
- numpy教程:矩阵matrix及其运算
- numpy教程 - 矩阵及其运算
- 矩阵运算
- Java中的矩阵运算commons-math3-3.6.1.jar【时间戳2017/08/17】
- 文章标题Eigen的矩阵运算使用
- 【H.264/AVC视频编解码技术详解】十四、H.264的变换编码(一)——矩阵运算与正交变换基本概念
- 矩阵的基本运算(C实现)
- 算法导论 矩阵运算 LUP
- OpenCV矩阵运算
- 稀疏矩阵的三元组表示的实现及应用(2)——采用三元组存储稀疏矩阵,设计两个稀疏矩阵相加的运算算法
- 使用 CUBLAS 库给矩阵运算提速
- 稀疏矩阵存储、转置、乘法运算