python学习笔记(三)

Scipy模块

1、关于文件保存和读取操作,有多种方式,比如

使用scipy中的io的io.savemat()和io.loadmat();

对于图片可以使用scipy中的misc的misc.imread () 或者matplotlib中的pyplot的pyplot.imread()

其中,numpy也提供text files的操作:numpy.loadtxt()和numpy.savetxt()

对于读取text和csv文件,还有numpy.genfromtxt()和numpy.recfromcsv()

比较高效,特定于numpy的二进制形式的numpy.save()和numpy.load()

更高级的图片输入输出方式有skimage.io

 

2、线性代数操作scipy.linalg

比如求行列式的值,可以用linalg.det(A),其中A是numpy定义的方阵;

比如求方阵的逆矩阵,可以用linalg.inv(arr),如果arr是奇异矩阵,则会引起错误;

SVD有uarr, spec, vharr = linalg.svd(arr),其中,urarr, spec, vharr可以重新组合逼进原矩阵,具体地:

sarr = np.diag(spec)
>>> svd_mat = uarr . dot ( sarr ) . dot ( vharr ) >>> np . allclose ( svd_mat , arr ) True

3、插值运算:scipy.interpolate

对于1维的插值函数,有linear_interp = interp1d(measured_time, measures)

其中,可通过设置参数kind='cubic'改更插值类型,默认是线性插值


4、优化和拟合:scipy.optimize

curve_fit(), minimize(f, x0, method="L-BFGS-B"), basinhopping用来找全局最优;可设置参数除了method外还有bounds, 如bounds=((0,10), )

minimize_scalar()

如果函数中有多个自变量,可以将变量写成向量的形式;

root找到函数为0的变量;


5、图像的几何形变, from scipy import ndimage # shift, roate, zoom


6、图像膨胀 腐蚀操作ndimage.binary_opening(img) .binary_closing(img)


7、对图像中不同区域块用不同颜色作为不同标签,可以用ndimage.label(mask)方法



你可能感兴趣的:(python语言)