爬虫python编程与cvi编程_与爬虫无关,简单的用python进行科学运算

1.算积分

1.1一重积分

例:如计算半圆的面积,积分公式:

bVrnot

# -*- coding:utf-8 -*-

from scipy import integrate#输入scipy的integrate函数

def fun(x):

return (1-x*x)**0.5#定义的半圆函数

p,err=integrate.quad(fun,-1,1)#传入函数,积分范围-1到1

print p

1.2二重积分,算体积

例:求上半圆的体积,积分公式:

bVrno5

# -*- coding:utf-8 -*-

from scipy import integrate

def fun(x,y):

return (1-x*x-y*y)**0.5#对函数的定义

def fun2(x):

return (1-x*x)**0.5#定义y对x的边界函数

m,err=integrate.dblquad(fun, -1, 1,

lambda x:-fun2(x),

lambda x:+fun2(x))#对x的取值范围-1到1,对y的取值范围-f(x)到f(x)

print m

2.解非线性方程组

例:求解非线性方程组

bVrnqh

# -*- coding:utf-8 -*-

from scipy.optimize import fsolve

from math import sin

def func(x):

x0,x1,x2=x.tolist()#定义变量是个浮点数

return[

5*x1+3,

4*x0*x0-2*sin(x1*x2),

x1*x2-1.5

]#定义公式

r=fsolve(func,[1,1,1])#1,1,1,指的是传入可能的解,通常1,1,1

print r

3.python绘图

快速绘图:

# -*- coding:utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.font_manager import FontProperties

font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)#设置中文字体

x=np.linspace(0,10,100)#生成数列

y=np.sin(x)

z=np.cos(x)

plt.figure(figsize=(7,5))#框的尺寸大小

plt.plot(x,y,label='$sin(x)$')#

plt.plot(x,z,"r--",label="$cos(x)$")#r蓝色,虚线

plt.xlabel(u"时间(s)",fontproperties=font)#横坐标标签

plt.ylabel(u"y值",fontproperties=font)

plt.title(u"数学",fontproperties=font)#标题

plt.ylim(-1.2,1.2)#取值范围

plt.legend()#图示

plt.show()

结果显示:

bVrn8F

3.1 多轴绘图,各种坐标系的绘制

# -*- coding:utf-8 -*-

import matplotlib.pyplot as plt

import numpy as np

w=np.linspace(0.1,1000, 1000)

p=np.abs(1/(1+0.1j*w))

plt.subplot(221)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置

plt.plot(w,p,linewidth=2)#linewidth线宽=2

plt.ylim(0,1.5)

plt.subplot(222)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置

plt.semilogx(w,p,linewidth=2)#semilogx: x轴为对数刻度,y轴为线性刻度

plt.ylim(0,1.5)

plt.subplot(223)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置

plt.semilogy(w,p,linewidth=2)#y轴为对数坐标系

plt.ylim(0,1.5)

plt.subplot(224)#m表示是图排成m行,n表示图排成n列,p表示图所在的位置

plt.loglog(w,p,linewidth=2)#双对数坐标系

plt.ylim(0,1.5)

plt.show()

结果显示:

bVroaE

3.2绘制条形图

# -*- coding:utf-8 -*-

import matplotlib.pyplot as plt

import numpy as np

from matplotlib.font_manager import FontProperties

font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)

def autolabel(rects):

for rect in rects:

height = rect.get_height()

plt.text(rect.get_x()+rect.get_width()/2., 1.03*height, '%s' % float(height))

x=np.array([1,2,3,4,5])

y=np.array([2,3,4,5,5])

plt.figure()

#bar绘制条形图

rect=plt.bar(x,y,width=0.35,align="center",label="people",yerr=0.000001)

plt.xlabel(u"年龄",fontproperties=font)

plt.ylabel("num")

plt.legend()

autolabel(rect)#显示y的数值

plt.show()

结果显示:

bVrofu

3.3绘制散点图

# -*- coding:utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

x=np.random.random(100)#在0到1生成100个随机数

y=np.random.random(100)

plt.figure(figsize=(8,4))

plt.scatter(x, y, c="black")

plt.show()

bVrogf

3.4绘制3D图形

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

th=np.linspace(-4*np.pi, 4*np.pi, 100)

z=np.linspace(-2,2,100)

r=z*2+1

x=r*np.sin(th)

y=r*np.cos(th)

fig=plt.figure()

ax=fig.add_subplot(111,projection='3d')

ax.plot(x,y,z)

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值