您的位置:首页 > 编程语言 > Python开发

python学习笔记(三)

2017-11-09 10:26 411 查看
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)方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: