Тип timedelta64
Тип timedelta64 в NumPy представляет собой разницу во времени между двумя датами или моментами времени. Этот тип данных позволяет выполнять арифметические операции с временными интервалами, такие как сложение, вычитание и сравнение. В отличие от стандартного Python типа timedelta, timedelta64 оптимизирован для работы с массивами и поддерживает различные единицы измерения: наносекунды (ns), микросекунды (us), миллисекунды (ms), секунды (s), минуты (m), часы (h), дни (D), недели (W) и месяцы (M).
Синтаксис
Для создания значения типа timedelta64 используется конструктор с указанием количества единиц и их типа:
np.timedelta64(value, unit)
Где value - целое число (количество единиц), а unit - строка, определяющая единицу измерения ('ns', 'us', 'ms', 's', 'm', 'h', 'D', 'W', 'M').
Пример
Создадим timedelta64 с разными единицами измерения:
import numpy as np
# Создаем интервалы в разных единицах
dt1 = np.timedelta64(5, 'D') # 5 дней
dt2 = np.timedelta64(3, 'h') # 3 часа
dt3 = np.timedelta64(30, 'm') # 30 минут
print(dt1)
print(dt2)
print(dt3)
Результат выполнения кода:
5 days
3 hours
30 minutes
Пример
Выполним арифметические операции с timedelta64:
import numpy as np
dt1 = np.timedelta64(10, 'D')
dt2 = np.timedelta64(3, 'D')
# Сложение
dt_sum = dt1 + dt2
# Вычитание
dt_diff = dt1 - dt2
# Умножение
dt_mul = dt1 * 2
print(dt_sum)
print(dt_diff)
print(dt_mul)
Результат выполнения кода:
13 days
7 days
20 days
Пример
Создадим массив timedelta64 и выполним агрегацию:
import numpy as np
# Массив временных интервалов
arr = np.array([
np.timedelta64(1, 'D'),
np.timedelta64(2, 'D'),
np.timedelta64(3, 'D'),
np.timedelta64(4, 'D'),
np.timedelta64(5, 'D')
])
# Сумма интервалов
total = np.sum(arr)
# Среднее значение
mean = np.mean(arr)
# Минимальное значение
min_val = np.min(arr)
print(total)
print(mean)
print(min_val)
Результат выполнения кода:
15 days
3 days
1 day
Пример
Преобразуем timedelta64 в разные единицы измерения:
import numpy as np
# Создаем интервал в часах
dt = np.timedelta64(48, 'h')
# Преобразуем в дни
dt_days = dt.astype('timedelta64[D]')
# Преобразуем в минуты
dt_minutes = dt.astype('timedelta64[m]')
print(dt_days)
print(dt_minutes)
Результат выполнения кода:
2 days
2880 minutes
Пример
Используем timedelta64 с datetime64 для вычисления разницы:
import numpy as np
# Создаем две даты
date1 = np.datetime64('2025-01-01')
date2 = np.datetime64('2025-12-31')
# Вычисляем разницу
diff = date2 - date1
print(diff)
print(diff.astype('timedelta64[D]')) # В днях
print(diff.astype('timedelta64[W]')) # В неделях
Результат выполнения кода:
364 days
364 days
52 weeks
Смотрите также
-
тип
datetime64,
который представляет собой дату и время -
тип
int64,
который может использоваться для хранения временных меток -
тип
float64,
который может использоваться для хранения дробных значений времени -
тип
str,
который может хранить строковое представление даты и времени