2014-11-04 2 views
4

파이썬에서 형식이 엄격히 증가하는 임의의 불규칙 타임 스탬프 목록을 만드는 방법이 있습니까? 예 :파이썬에서 랜덤 타임 스탬프 목록 만들기

20/09/2013 13:00   
20/09/2013 13:01   
20/09/2013 13:05   
20/09/2013 13:09   
20/09/2013 13:16   
20/09/2013 13:26 
+0

는'irregular'가'unique'을 의미합니까? yo는 타임 스탬프를 사용하고 있습니까? – dm03514

+0

두 개의 연속적인 타임 스탬프 사이의 시간차가 불규칙해야합니다. 또한 고유해야합니다. 무작위로 샘플링 된 무작위로 생성 된 시계열을 생성하려고합니다. – user93

답변

5

임의 생성기를 생성 할 수 있습니다.

  • 당신은 당신의 경우, 실제 날짜에 시간을 추가하기 위해 0-60 (분) 사이 randrange(60) 라돔 번호

  • 사용 timedelta을 생성 할 수 있습니다, 그것은 발전기를 구축 20/09/2013 13:..

  • 있어 random_date , 시작 날짜 및 생성 할 날짜 수.

from random import randrange 
import datetime 


def random_date(start,l): 
    current = start 
    while l >= 0: 
     curr = current + datetime.timedelta(minutes=randrange(60)) 
     yield curr 
     l-=1 



startDate = datetime.datetime(2013, 9, 20,13,00) 

for x in random_date(startDate,10): 
    print x.strftime("%d/%m/%y %H:%M") 

출력 :

20/09/13 13:12 
20/09/13 13:02 
20/09/13 13:50 
20/09/13 13:13 
20/09/13 13:56 
20/09/13 13:40 
20/09/13 13:10 
20/09/13 13:35 
20/09/13 13:37 
20/09/13 13:45 
20/09/13 13:27 

UPDATE

당신은 당신이 생성 한 마지막 날짜에 차이 번호를 추가하여 그 트릭을 할 수 있습니다, 다음 역 전체 목록. 매번 추가하는 임의의 숫자를 변경하여 원하는 결과를 얻을 수도 있습니다.

코드는 다음과 같습니다.

from random import randrange 
import datetime 


def random_date(start,l): 
    current = start 
    while l >= 0: 
    current = current + datetime.timedelta(minutes=randrange(10)) 
    yield current 
    l-=1 



startDate = datetime.datetime(2013, 9, 20,13,00) 


for x in reversed(list(random_date(startDate,10))): 
    print x.strftime("%d/%m/%y %H:%M") 

출력 :

20/09/13 13:45 
20/09/13 13:36 
20/09/13 13:29 
20/09/13 13:25 
20/09/13 13:20 
20/09/13 13:19 
20/09/13 13:16 
20/09/13 13:16 
20/09/13 13:07 
20/09/13 13:03 
20/09/13 13:01 
+0

도움 주셔서 감사합니다. 하지만 시간이 갈수록 늘어나야합니다. 위 코드를 수정할 수있는 방법이 있습니까? – user93

+0

환영합니다! 생성 된 목록을 되돌릴 수 있습니다. 자세한 내용을 추가 한 UPDATE를 확인하십시오. –

+0

네, 그게 내가 뭘했는지. 완벽하게 일했습니다. 고맙습니다. – user93

관련 문제