博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《python数据分析组键篇》之scipy
阅读量:4230 次
发布时间:2019-05-26

本文共 2094 字,大约阅读时间需要 6 分钟。

前言

scipy 包含的功能有最优化,线性代数,积分,插值,拟合常微分等等,是数据分析中完成数学计算最重要的库之一。

第一部分 scipy积分

quad 一元积分模块
quad(func, a, b, args=())
func函数; a:float 积分下限 ; b:积分上限; args 可选,tuple,func的参数
输出是 tuple(值,误差),数值积分是有误差的,所以提供了一个误差值

dbquad 二元积分模块

dblquad(func, a, b, gfun, hfun, args=())
func(x,y)二元函数,a,b是x的范围,gfun(x),hfun(x)是y的范围这里最好用lamaba,args()可选参数

nquad n元积分模块

nquad(func, ranges) func是函数,ranges:iterable object
范围的每个元素可能是2个数字的序列,从后到前的积分,和实际的积分写法是一样的。

import numpy as npfrom scipy.integrate import quad,dblquad,nquaddef main():    print quad(lambda x : np.exp(-x),0,np.inf)    # np.inf 无穷大    print dblquad(lambda t,x : np.exp(-x*t)/t**3,0,np.inf,lambda x:1,lambda x : np.inf)    def f(x,y):        return x*y    def bound_y():        return [0,0.5]    def bound_x(y):        return [0,1-2*y]    print nquad(f,[bound_x,bound_y])if __name__ == "__main__":    main()

输出结果

(1.0000000000000002, 5.842606744944177e-11)
(0.33333333325010883, 1.3888461883425516e-08)
(0.010416666666666668, 4.101620128472366e-16)

scipy 优化器 Opteimizer

import numpy as npfrom scipy.optimize import minimize# 最小值模块# minimize(fun, x0, optionalargs())# x0 初始化数据# option={"xtol":精读;"disp":中间过程}def main():    "全局最小值"    def rosen(x):        return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0+(1-x[:-1])**2.0)    x0 = np.array([1.3,0.7,0.8,1.9,1.2])    res = minimize(rosen,x0,method="nelder-mead",options={
"xtol":1e-8,"disp":True}) #res = minimize(rosen,x0,method="nelder-mead",options={"xtol":1e-8}) print res # print res.xif __name__ == "__main__": main()

输出

Optimization terminated successfully.
Current function value: 0.000000
Iterations: 339
Function evaluations: 571
final_simplex: (array([[ 1. , 1. , 1. , 1. , 1. ],
[ 1. , 1. , 1. , 1. , 1. ],
[ 1. , 1. , 1. , 1.00000001, 1.00000001],
[ 1. , 1. , 1. , 1. , 1. ],
[ 1. , 1. , 1. , 1. , 1. ],
[ 1. , 1. , 1. , 1. , 0.99999999]]), array([ 4.86115343e-17, 7.65182843e-17, 8.11395684e-17,
8.63263255e-17, 8.64080682e-17, 2.17927418e-16]))
fun: 4.8611534334221152e-17
message: ‘Optimization terminated successfully.’
nfev: 571
nit: 339
status: 0
success: True
x: array([ 1., 1., 1., 1., 1.])

转载地址:http://cliqi.baihongyu.com/

你可能感兴趣的文章
git常用命令总结
查看>>
Protobuf了解一下?
查看>>
超越Selenium的存在---Pyppeteer
查看>>
复仇者联盟4:终局之战剧透
查看>>
Msgpack有没有兴趣了解一下?
查看>>
探索一家神秘的公司
查看>>
PDF转Word完全免费?这么好的事情我怎么不知道????
查看>>
数据解读---B站火过蔡徐坤的“鬼畜“区巨头们
查看>>
Squid代理服务器搭建亿级爬虫IP代理池
查看>>
JupyterNotebook‘s Magic
查看>>
在Linux 上部署Jenkins和项目
查看>>
Python+requests+unittest+excel实现接口自动化测试框架
查看>>
那些年我们听过的互联网公司的套路?
查看>>
谈谈python里面那些高级函数
查看>>
40行代码带你免费看《海贼王-和之国》篇章
查看>>
搭建炫酷的服务器监控平台
查看>>
垃圾分类:人机搭配,干活不累
查看>>
Nginx
查看>>
Memcached,session共享
查看>>
Tomcat,varnish
查看>>