Я пытаюсь выполнить некоторую интеграцию с np.trapz
некоторых данных, используя DatetimeIndex
в качестве значений x, но результаты не такие, как я ожидал. Может ли кто-нибудь помочь мне?
Проблема:
У меня есть фрейм данных pandas, который имеет временные метки в качестве индексов и один столбец с данными об освещенности, называемый освещенностью. . Это выглядит следующим образом:
>>> data
Timestamp Irradiance
2017-04-29 00:01:49 -1.16143
2017-04-29 00:06:49 -1.54857
2017-04-29 00:11:49 -2.03248
2017-04-29 00:16:49 -1.69373
2017-04-29 00:21:49 -1.35498
... ...
2017-04-29 23:38:49 -1.93543
2017-04-29 23:43:49 -2.03222
2017-04-29 23:48:49 -2.85481
2017-04-29 23:53:49 -2.41937
2017-04-29 23:58:49 -2.17745
1921 rows × 1 columns
>>>data.index
<class 'pandas.core.indexes.datetimes.DatetimeIndex'>
>>>data["Irradiance"]
<class 'pandas.core.series.Series'>
Теперь мне нравится интегрировать данные, чтобы получить полную освещенность за этот день. np.trapz(data["Irradiance"])
должен помочь, если временные метки были распределены равномерно: это не (в дневное время временные метки разнесены всего на 30 секунд, в отличие от 5 минут в ночное время).
Итак, я добавляю DatetimeIndex
в качестве значений x к np.trapz
, чтобы учесть неравномерно расположенные временные метки: np.trapz(data["Irradiance"], x = data.index)
Теперь результат:
>>>np.trapz(data["Irradiance"], x = data.index)
numpy.timedelta64(17899433815886749,'ns')
Почему эта интеграция дает мне наносекундный выходной сигнал? Для меня это не имеет смысла. Я ожидал, что это даст какое-то значение, но определенно не это.
для ясности: так выглядят фактические данные при нанесении на график