У меня есть 2D-матрица U
данных, которая выглядит примерно так:
0 0.5 0.1 0.3
0 nan 0.4 0.1
nan nan 0.2 nan
Индекс строк соответствует точкам данных оси высоты zz = [0, 2, 10]
, а столбцы являются точками данных горизонтальной оси yy = [0, 3, 7, 9]
(не фиксированные интервалы). Я хочу интегрировать эту матрицу U
по осям zz
и yy
. Для этого я подумал об использовании numpy trapz следующим образом:
Uy = np.zeros(len(yy))
for y in range(len(yy)):
U_step = U[:,y][~np.isnan(U[:,y])]
x = zz[0:len(U_step)]
Uy[y] = np.trapz(U_step, x=x)
I = np.trapz(Uy, x=yy)
Однако результат, который я получаю, не похож на тот, который я ожидал (значение слишком низкое), поэтому мне интересно если что-то не так с моей интеграцией, или, может быть, мне стоит использовать другие функции?