numpy.trapz()
Функция np.trapz выполняет численное интегрирование методом трапеций по дискретным точкам. Это точнее метода прямоугольников и идеально подходит для оценки площади под кривой сигнала.
Примечание
В NumPy 2.0 функция переименована в np.trapezoid; np.trapz оставлено как алиас с предупреждением о депрекации.
Сигнатура
numpy.trapz(y, x=None, dx=1.0, axis=-1)
Параметры
y— массив значений функции.x— массив координат точек (необязательно). Если не задан — используется равномерный шагdx.dx— шаг между точками, еслиxне задан.axis— ось интегрирования.
Возвращаемое значение
Скаляр или массив, равный приближённой площади под кривой.
Примеры
Пример 1. Простое интегрирование с равномерным шагом.
import numpy as np
y = np.array([0, 1, 2, 3, 4])
print(np.trapz(y))
8.0
Пример 2. Интегрирование sin(x) от 0 до π (точное значение = 2).
x = np.linspace(0, np.pi, 1000)
y = np.sin(x)
print(round(np.trapz(y, x), 6))
1.999998
Пример 3. Площадь под кривой сигнала с датчика.
t = np.array([0.0, 0.1, 0.2, 0.3, 0.4])
current = np.array([0.0, 1.2, 1.5, 1.1, 0.0])
charge = np.trapz(current, t)
print(round(charge, 4))
0.385
Пример 4. Использование dx вместо x.
y = np.array([1.0, 2.0, 3.0, 4.0])
print(np.trapz(y, dx=0.5))
3.75
Пример 5. Интегрирование по строкам матрицы.
m = np.array([[0, 1, 2, 3],
[3, 2, 1, 0]])
print(np.trapz(m, axis=1))
[4.5 4.5]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.