python的numpy库可以提供矩阵运算的功能
使用numpy
1 | from numpy import *;#导入numpy的库函数 |
创建矩阵
由一维或二维数据创建矩阵
1 | from numpy import * |
常见的矩阵:
1 | #创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3) |
常用矩阵运算
1. 矩阵相乘
需要注意的是,矩阵相乘得到的还是矩阵(可能是1*1)
1 | >>>a1=mat([1,2]); |
2. 矩阵点乘
矩阵对应元素相乘
1 | >>>a1=mat([1,1]); |
矩阵点乘
1 | >>>a1=mat([2,2]); |
3.矩阵求逆,转置
矩阵求逆
1 | >>>a1=mat(eye(2,2)*0.5) |
矩阵转置
1 | 1,1],[0,0]]) a1=mat([[ |
4.计算矩阵对应行列的最大、最小值、和。
1 | 3>>>a1=mat([[1,1],[2,3],[4,2]]) |
计算每一列、行的和
1 | #列和,这里得到的是1*2的矩阵 |
计算最大、最小值和索引
1 | #计算a1矩阵中所有元素的最大值,这里得到的结果是一个数值 |
5.矩阵的分隔和合并
矩阵的分隔,同列表和数组的分隔一致。
1 | >>>a=mat(ones((3,3))) |
矩阵的合并
1 | >>>a=mat(ones((2,2))) |
矩阵、列表、数组的转换
列表可以修改,并且列表中元素可以使不同类型的数据,如下:
l1=[[1],’hello’,3];
numpy中数组,同一个数组中所有元素必须为同一个类型,有几个常见的属性:
1 | >>>a=array([[2],[1]]) |
numpy中的矩阵也有与数组常见的几个属性。
它们之间的转换:
1 | >>>a1=[[1,2],[3,2],[5,2]] #列表 |
这里可以发现三者之间的转换是非常简单的,这里需要注意的是,当列表是一维的时候,将它转换成数组和矩阵后,再通过tolist()转换成列表是不相同的,需要做一些小小的修改。如下:
1 | >>>a1=[1,2,3] #列表 |
矩阵转换成数值,存在以下一种情况:
1 | 1]) dataMat=mat([ |