Створення numpy-масиву з одним datetime64 на день з позначкою початку місяця

numpy_datetime64_array.py
startdate = np.datetime64('2022-01-01T00:00:00.000000')
 # 10000 днів. Цей масив містить 0 (День 0), 1 (День 1) тощо
day_offsets = np.arange(10000, dtype=np.int64)
usec_per_day = int(1e6) * 86400 # 86.4k sec на день, 1e6 microseconds на секунду
# Обчислити microseconds offset від першого дня
usec_offsets = day_offsets * usec_per_day
# Обчислити timestamps
timestamps = startdate + usec_offsets

# Позначити початок місяця в boolean array
is_start_of_month = np.zeros_like(timestamps, dtype=bool)
for index, timestamp in np.ndenumerate(timestamps):
    is_start_of_month[index[0]] = timestamp.astype(datetime).day == 1

Використовуючи цей метод, timestamps буде початком кожного дня

numpy_datetime64_output.txt
array(['2022-01-01T00:00:00.000000', '2022-01-02T00:00:00.000000',
       '2022-01-03T00:00:00.000000', ..., '2101-12-30T00:00:00.000000',
       '2101-12-31T00:00:00.000000', '2102-01-01T00:00:00.000000'],
      dtype='datetime64[us]')

Дивіться схожі статті за категоріями: Data Science Python