numpy.trapz #
- 麻木的。trapz ( y , x = None , dx = 1.0 , axis = -1 ) [来源] #
使用复合梯形法则沿给定轴积分。
如果提供了x,则积分将沿其元素顺序发生 - 它们未排序。
沿着给定轴上的每个 1d 切片对 y ( x )进行积分,计算\(\int y(x) dx\)。当x被指定时,它沿着参数曲线积分,计算\(\int_t y(t) dt = \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt\)。
- 参数:
- y类似数组
输入要积分的数组。
- x类似数组,可选
y值对应的样本点。如果x为 None,则假定样本点均匀间隔dx。默认值为“无”。
- dx标量,可选
x为 None时样本点之间的间距。默认值为 1。
- 轴int,可选
积分所沿的轴。
- 返回:
- trapz float 或 ndarray
y = n 维数组的定积分,按照梯形规则沿单轴近似。如果y是一维数组,则结果是浮点数。如果n大于 1,则结果是n -1 维数组。
笔记
图[2]说明了梯形规则 - 点的 y 轴位置将从y数组中获取,默认情况下点之间的 x 轴距离将为 1.0,或者可以使用x数组或dx标量提供它们。返回值将等于红线下的组合面积。
参考
[ 1 ]例子
对均匀分布的点使用梯形法则:
>>> np.trapz([1, 2, 3]) 4.0
样本点之间的间距可以通过
x
或dx
参数来选择:>>> np.trapz([1, 2, 3], x=[4, 6, 8]) 8.0 >>> np.trapz([1, 2, 3], dx=2) 8.0
使用递减
x
对应于反向积分:>>> np.trapz([1, 2, 3], x=[8, 6, 4]) -8.0
更一般地
x
用于沿参数曲线积分。我们可以估计积分\(\int_0^1 x^2 = 1/3\)使用:>>> x = np.linspace(0, 1, num=50) >>> y = x**2 >>> np.trapz(y, x) 0.33340274885464394
或者估计圆的面积,注意我们重复闭合曲线的样本:
>>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True) >>> np.trapz(np.cos(theta), x=np.sin(theta)) 3.141571941375841
np.trapz
可以沿指定轴应用以在一次调用中执行多项计算:>>> a = np.arange(6).reshape(2, 3) >>> a array([[0, 1, 2], [3, 4, 5]]) >>> np.trapz(a, axis=0) array([1.5, 2.5, 3.5]) >>> np.trapz(a, axis=1) array([2., 8.])