This is a pre-release version (latest). Go to latest (2.4.4)
{ } Raw JSON

bundles / numpy latest / numpy / trapezoid

_ArrayFunctionDispatcher

numpy:trapezoid

source: /dev/numpy/build-install/usr/lib/python3.14/site-packages/numpy/lib/_function_base_impl.py :4900

Signature

def   trapezoid ( y x = None dx = 1.0 axis = -1 )

Summary

Integrate along the given axis using the composite trapezoidal rule.

Extended Summary

If x is provided, the integration happens in sequence along its elements - they are not sorted.

Integrate y (x) along each 1d slice on the given axis, compute . When x is specified, this integrates along the parametric curve, computing .

Parameters

y : array_like

Input array to integrate.

x : array_like, optional

The sample points corresponding to the y values. If x is None, the sample points are assumed to be evenly spaced dx apart. The default is None.

dx : scalar, optional

The spacing between sample points when x is None. The default is 1.

axis : int, optional

The axis along which to integrate.

Returns

trapezoid : float or ndarray

Definite integral of y = n-dimensional array as approximated along a single axis by the trapezoidal rule. If y is a 1-dimensional array, then the result is a float. If n is greater than 1, then the result is an n-1 dimensional array.

Notes

Image [2] illustrates trapezoidal rule -- y-axis locations of points will be taken from y array, by default x-axis distances between points will be 1.0, alternatively they can be provided with x array or with dx scalar. Return value will be equal to combined area under the red lines.

Examples

import numpy as np
Use the trapezoidal rule on evenly spaced points:
np.trapezoid([1, 2, 3])
The spacing between sample points can be selected by either the ``x`` or ``dx`` arguments:
np.trapezoid([1, 2, 3], x=[4, 6, 8])
np.trapezoid([1, 2, 3], dx=2)
Using a decreasing ``x`` corresponds to integrating in reverse:
np.trapezoid([1, 2, 3], x=[8, 6, 4])
More generally ``x`` is used to integrate along a parametric curve. We can estimate the integral :math:`\int_0^1 x^2 = 1/3` using:
x = np.linspace(0, 1, num=50)
y = x**2
np.trapezoid(y, x)
Or estimate the area of a circle, noting we repeat the sample which closes the curve:
theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
np.trapezoid(np.cos(theta), x=np.sin(theta))
``np.trapezoid`` can be applied along a specified axis to do multiple computations in one call:
a = np.arange(6).reshape(2, 3)
a
np.trapezoid(a, axis=0)
np.trapezoid(a, axis=1)

See also

cumsum
sum

Aliases

  • numpy.trapezoid