Тип datetime64
Тип datetime64 в NumPy предназначен для хранения
дат и времени. Он позволяет выполнять арифметические
операции с датами, извлекать компоненты даты и времени,
а также преобразовывать данные из строковых форматов.
Основное преимущество этого типа - эффективное хранение
и быстрые векторные операции над массивами дат.
При создании массива с типом datetime64 необходимо
указать единицу измерения времени: год ('Y'), месяц ('M'),
день ('D'), час ('h'), минута ('m'), секунда ('s'),
миллисекунда ('ms'), микросекунда ('us') или наносекунда ('ns').
Единица измерения задаётся через строку формата, например,
datetime64[D] для дней или datetime64[s] для секунд.
Синтаксис
np.array(['2024-01-01', '2024-01-02'], dtype='datetime64[D]')
Пример
Давайте создадим массив дат из списка строк:
import numpy as np
arr = np.array(['2024-01-01', '2024-01-02', '2024-01-03'], dtype='datetime64[D]')
print(arr)
Результат выполнения кода:
['2024-01-01' '2024-01-02' '2024-01-03']
Пример
Создадим массив с указанием точного времени:
import numpy as np
arr = np.array(['2024-01-01T12:00:00', '2024-01-02T15:30:00'], dtype='datetime64[s]')
print(arr)
Результат выполнения кода:
['2024-01-01T12:00:00' '2024-01-02T15:30:00']
Пример
Создадим массив дат с использованием функции arange
для генерации последовательности дат:
import numpy as np
arr = np.arange('2024-01-01', '2024-01-10', dtype='datetime64[D]')
print(arr)
Результат выполнения кода:
['2024-01-01' '2024-01-02' '2024-01-03' '2024-01-04' '2024-01-05'
'2024-01-06' '2024-01-07' '2024-01-08' '2024-01-09']
Пример
Выполним арифметическую операцию с датами - прибавим 5 дней:
import numpy as np
arr = np.array(['2024-01-01', '2024-01-02'], dtype='datetime64[D]')
res = arr + np.timedelta64(5, 'D')
print(res)
Результат выполнения кода:
['2024-01-06' '2024-01-07']
Пример
Получим разницу между двумя датами в днях:
import numpy as np
arr = np.array(['2024-01-01', '2024-01-10', '2024-01-20'], dtype='datetime64[D]')
base = np.array('2024-01-01', dtype='datetime64[D]')
diff = arr - base
print(diff)
Результат выполнения кода:
[ 0 9 19]
Пример
Извлечём компоненты даты с помощью атрибута astype:
import numpy as np
arr = np.array(['2024-01-01', '2024-02-15'], dtype='datetime64[D]')
year = arr.astype('datetime64[Y]')
month = arr.astype('datetime64[M]')
print("Year:", year)
print("Month:", month)
Результат выполнения кода:
Year: ['2024' '2024']
Month: ['2024-01' '2024-02']
Смотрите также
-
тип
timedelta64,
который представляет разницу между датами -
тип
int64,
который используется для хранения целых чисел -
тип
float64,
который хранит числа с плавающей точкой -
тип
str,
который хранит строки в массиве