numpy 1.22.4 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
trapz(y, x=None, dx=1.0, axis=-1)

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 $\int y(x) dx$ . When x is specified, this integrates along the parametric curve, computing $\int_t y(t) dt = \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt$ .

Notes

Image 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.

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

trapz : 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.

Integrate along the given axis using the composite trapezoidal rule.

See Also

cumsum
sum

Examples

>>> np.trapz([1,2,3])
4.0
>>> np.trapz([1,2,3], x=[4,6,8])
8.0
>>> np.trapz([1,2,3], dx=2)
8.0

Using a decreasing x corresponds to integrating in reverse:

>>> np.trapz([1,2,3], x=[8,6,4])
-8.0

More generally x is used to integrate along a parametric curve. This finds 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.trapz(np.cos(theta), x=np.sin(theta)) 3.141571941375841
>>> 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.])
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

numpy.sum numpy.cumsum

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /numpy/lib/function_base.py#4686
type: <class 'function'>
Commit: