有一個更簡單的方法來實現這一點,而不需要顯式調用numpy之外的任何庫。
Numpy的日期時間數據類型非常強大:特別是對於這種情況,您可以添加和減去整數,並將其視爲可用的最小時間單位。例如,對於%Y-%間 - %d格式:
exampledatetime1 = np.datetime64('2017-01-01')
exampledatetime1 + 1
>>
2017-01-02
然而,對於%Y-%間 - %d%H:%M:%S格式:
exampledatetime2 = np.datetime64('2017-01-01 00:00:00')
exampledatetime2 + 1
>>
2017-01-01 00:00:01
在這種情況下
,因爲你只需要信息減到每天的分辨率,你可以簡單地做到以下幾點:
import numpy as np
bimonthly_days = np.arange(0, 60)
base_date = np.datetime64('2017-01-01')
random_date = base_date + np.random.choice(bimonthly_days)
,或者如果你想成爲即使它清潔:
import numpy as np
def random_date_generator(start_date, range_in_days):
days_to_add = np.arange(0, range_in_days)
random_date = np.datetime64(start_date) + np.random.choice(days_to_add)
return random_date
,然後只用:
yourdate = random_date_generator('2012-01-15', 60)
如果你想每天有相同的概率,使用timedelta是一個更好的主意。 –