'simulation'에 해당되는 글 1건


numpy로 바꿨더니, 훨씬 빠르네.


numpy에 array count 구하는 게 없어서 불편했는데,

bincount로 대신해서 쓸 수 있었다.

numpy.bincount

>>> np.bincount(np.array([0, 1, 1, 3, 2, 1, 7]))
array([1, 3, 1, 1, 0, 0, 0, 1])

전체 count를 구하는 것인데도 O(n)보다 더 빠른 것 같아... 내 착각인가


np.histogram이나 Counter도 쓸 수 있나보다.

find the most frequent number in a numpy vector

How can I generate a complete histogram with numpy?


결과를 python list 변수 그대로 출력해두기

execfile("...py")로 불러들일 수 있다.


계산에 1시간 쯤 걸리는 것 같다.


고친 부분

n_slots = 1000

n_iterations = 10000

n_people_range = range(n_slots*2, 50000, n_iterations/100)

...

votes = numpy.random.randint(n_slots, size=n_people)

#slot_histogram, n_bins = numpy.histogram(votes)

slot_histogram = numpy.bincount(votes)

#for i in votes:

# slot_histogram[i] = slot_histogram[i] + 1


...

counts = numpy.bincount(slot_histogram)

n_0_slots = counts[0]

n_1_slots = counts[1]

...


n_0_blur_hist = [x/float(n_iterations) for x in n_0_hist]

n_1_blur_hist = [x/float(n_iterations) for x in n_1_hist]


postfix = str(n_slots) + "_" + str(n_people_range[-1] + 1)

fp = open(os.path.dirname(os.path.abspath(__file__)) + "/blur_hist_" + postfix + ".py", "w")

print >>fp, ("range_" + postfix + " = " + str(people_x_range))

print >>fp, ("n_0_hist_" + postfix + " = " + str(n_0_blur_hist))

print >>fp, ("n_1_hist_" + postfix + " = " + str(n_1_blur_hist))

fp.close()






블로그 이미지

언제나19

기본에 충실하는 19식 재테크. 교과서 중심으로 공부했어요.

,