引言
使用numpy过程中,经常涉及mat和array的使用、相互转换,用的糊里糊涂,一不小心就报错。现在就系统的梳理下两者的用法和关系。
matrix与array的关系
- matrix是np.array的子集,mat是只能是二维矩阵,当做线代的矩阵。array可以是n维矩阵。
- numpy里函数大多默认返回array类型。如zeros、ones、arrange等
- array的方法mat也大多支持,只是返回类型不同。
- 不同: 乘法:array是对应位置元素相乘;matrix是矩阵乘法。其他mean等计算类函数也不相同,使用时留意。
matrix的常用函数
matrix类在defmatrix.py中有详细的定义。
方法概括起来包含3类:
1)计算类:sum\mean\std\max\min
2)矩阵变换类:getI\getT\flatten
3)类型转换类:tolist\getA
具体方法和说明:
tolist():转成标准list返回。
sum(self, axis=None, dtype=None, out=None):按axis轴求和;axis=0是按列;axis=1是按行。
squeeze(self, axis=None):
flatten(self, order='C'):压平。返回mat[[n,1]],n是mat元素的个数。(mat的方法返回mat,mat一定是2维矩阵,所以是[[n,1]];对应的array也有flatten,直接返回list)
mean(self, axis=None, dtype=None, out=None):
std(self, axis=None, dtype=None, out=None, ddof=0)
var(self, axis=None, dtype=None, out=None, ddof=0):
prod():连乘。
max/min(self, axis=None, out=None):返回指定轴axis的最大值
argmax/argmin(self, axis=None, out=None):返回指定轴axis的最大值index
ptp(self, axis=None, out=None):peak_to_peak(max-min)
getT(self):转置
getI(self):求逆矩阵
getA(self):转array
array常用函数
ndarray在multiarray.py中详细的定义
具体方法和说明
astype():类型转换
clip():修剪,把值域限定在指定范围,超过的用min\max表示。
dump(self, file):导出到指定文件。