import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2, 2, 200)
y = np.array(list(map(lambda x: 1/2*(np.e)**x if x < 0 else 1-1/2*(np.e)**(-x),x)))
plt.plot(x, y)
plt.show()
在Python中定义数学函数,作为自变量的参数可以是numpy的array数组类型,算得的函数值也构成一个数组。由于numpy拥有大量对数组的高效操作,故对定义分段函数带来很多方便。此外,这样定义的数学函数更便于用matplot包中的工具绘制其图形。下列Python代码定义本例中随机变量X XX的分布函数(累积概率函数)并用以计算概率P ( X > r / 2 ) P(X>r/2)P(X>r/2)(假定r=2)。
import numpy as np #导入numpy
def cdf(x, r):
if type(x)!=type(np.array([])): #非数组类型
x=np.array([x]) #凑成统一的数组类型
y=np.zeros(x.size) #函数值初始化为0
d=np.where((x>=0)&(x<=r)) #x中介于0~r的部分
y[d]=(x[d]/r)**2 #x介于0~r对应的函数值
d=np.where(x>r) #x中大于r的部分
y[d]=1 #x中大于r对应的函数值
if y.size==1: #单一函数值
return y[0]
return y #数组型函数值
print('P(X>r/2)=%.4f'%(1-cdf(x=1/2, r=2))