У меня проблемы с быстрым запуском моего кода.
После использования построчного профилировщика в моем коде я обнаружил, что в следующих строках происходит большая часть моей неэффективности:
import numpy as np
import datetime
timestamps = np.array(timestamps)
mask = (minTime <= timestamps) & (timestamps <= maxTime)
count = np.sum(mask)
timestamps
начинается как список значений даты и времени, а minTime
- это одно значение даты и времени.
Пример значения для временных меток:
minTime = datetime.datetime(2020, 5, 21, 2, 27, 26)
timestamps = [datetime.datetime(2020, 5, 21, 2, 27, 26), datetime.datetime(2020, 5, 21, 2, 27, 26),
datetime.datetime(2020, 5, 21, 2, 27, 26), datetime.datetime(2020, 5, 21, 2, 30, 55),
datetime.datetime(2020, 5, 21, 2, 30, 55), datetime.datetime(2020, 5, 21, 2, 30, 55),
datetime.datetime(2020, 5, 21, 2, 34, 26), datetime.datetime(2020, 5, 21, 2, 34, 26),
datetime.datetime(2020, 5, 21, 2, 34, 26), datetime.datetime(2020, 5, 21, 2, 39, 26),
datetime.datetime(2020, 5, 21, 2, 39, 26), datetime.datetime(2020, 5, 21, 2, 39, 26)]
Есть ли более эффективный способ переписать приведенный выше код?
Любые советы приветствуются.