NumPy trapz()

The trapz() function computes the definite integral of a given array using the trapezoidal rule. It approximates the area under the curve defined by the input array using a series of trapezoids.

Example

import numpy as np

# create an array of y-coordinates
y = np.array([1, 2, 3, 4, 5])

# compute the definite integral using numpy.trapz()
area = np.trapz(y)

print(area)

# Output: 12

trapz() Syntax

The syntax of trapz() is:

numpy.trapz(y, x = None, dx = 1.0, axis = -1)

trapz() Arguments

The trapz() function takes following arguments:

  • y - input array containing the y-coordinates of the curve
  • x (optional) - input array containing the x-coordinates of the curve
  • dx (optional) - the spacing between the x-coordinates
  • axis (optional) - the axis along which the integration is performed

trapz() Return Value

The numpy.trapz() function returns the approximate definite integral of the input array using the trapezoidal rule.


Example 1: Compute Definite Integral Using np.trapz()

import numpy as np

# create an array of y-coordinates
y = np.array([2, 5, 7, 3, 6, 9, 1])

# compute the definite integral using numpy.trapz() area = np.trapz(y)
print("Area under the curve:", area)

Output

Area under the curve: 31.5

In the above example, we have the y array representing the y-coordinates of a curve.

The np.trapz() function is used to calculate the definite integral of the curve, approximating the area under the curve using the trapezoidal rule.

The resulting area is stored in the area variable and then printed, which in this case is 31.5.


Example 2: Use of x and dx Argument in trapz()

import numpy as np

# create an array of y-coordinates
y = np.array([1, 2, 3, 4, 5])

# create an array of x-coordinates
x = np.array([0, 1, 2, 3, 4])

# specify the spacing between x-coordinates
dx = 0.5

# compute the definite integral using numpy.trapz() with optional arguments
area = np.trapz(y, x=x, dx=dx)

print("Area under the curve:", area)

Output

Area under the curve: 12.0

Here, the x array is provided to specify the x-coordinates, and the dx argument is used to specify the spacing between the x-coordinates.

By providing x and dx argument, we can compute the definite integral using non-equally spaced x-coordinates and a specific spacing between the x-coordinates.


Example 3: trapz() With 2-D Array

The axis argument defines how we can compute definite integrals of elements in a 2-D array.

  • If axis = None, the array is flattened and the definite integral of the flattened array is computed.
  • If axis = 0, the definite integral is calculated column-wise.
  • If axis = 1, the definite integral is calculated row-wise.

Let's see an example.

import numpy as np

# create a 2-D array
array1 = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

# calculate the definite integral of the flattened array result1 = np.trapz(array1.flatten())
print('Definite integral of the flattened array:', result1)
# calculate the definite integral column-wise (axis=0) result2 = np.trapz(array1, axis=0)
print('\nDefinite integrals column-wise (axis=0):') print(result2)
# calculate the definite integral row-wise (axis=1) result3 = np.trapz(array1, axis=1)
print('\nDefinite integrals row-wise (axis=1):') print(result3)

Output

Definite integral of the flattened array: 40.0

Definite integrals column-wise (axis=0):
[ 8. 10. 12.]

Definite integrals row-wise (axis=1):
[ 4. 10. 16.]