random 함수를 이용해서 나오는 값들에 대해서 공부, 나온 결과를 시각화 하는 것을 해보았다.

히스토그램에서 버킷의 개념, random.normalvariate()를 이용해서 정규분포 형태 만들기가 오늘의 중요한 내용이다.



여기 나오는 내용은 '예제로 배우는 파이썬 데이터 시각화'의 코드(파이썬 2.7)를 

파이썬 3 코드로 바꾼 것이다.


================================= Python =================================

from random import *


a = randint(1,5)  # 1~5 사이에서 랜덤한 하나의 정수 값을 랜덤으로 추출.

print(a)

b = randrange(1,10,2)  # 1 ~ 10 사이의 구간에서 홀수값만 랜덤으로 추출한다.

print(b)

i = uniform(1.0, 36.5)  # 1.0 ~ 36.5 사이에서 랜덤한 하나의 실수 값을 랜덤으로 추출.

print(i)





# 랜덤한 숫자를 생성하여 그 숫자 맞추기

from random import randint

import sys

n = randint(1,20)  # 1 ~ 20 인 정수를 n에 저장

while True:

    ans = input("숫자를 입력한다. 하기 싫으면 Q입력.")

    if ans.upper() == 'Q' or ans.upper() == 'q':

        sys.exit(0)  # 혹은 break로 종료한다.

    ians = int(ans)  # 받은 숫자를 int값으로 전환한다.

    if n == ians :  # n == ians 이면 맞췄으므로 종료

        print('맞춤')

        break

    elif n > ians:  # n이 입력값보다 크면 입력값이 작으므로 낮은 숫자를 선택했다는 것을 알 수 있다.

        print('낮은 숫자를 선택했습니다.')

    else:  # n이 입력값보다 작으면 입력값이 크기 때문에 높은 숫자를 선택했다는 것을 알 수 있다.

        print('높은 숫자를 선택했습니다.')






import random

numlist = [1, 2, 3, 4, 5, 6, 7, 8, 9]

s = random.sample(numlist, 3)  # 리스트에서 랜덤한 3개의 원소를 출력한다.

ss = random.choice(numlist)  # 리스트에서 하나만 랜덤하게 선택.

print(s)

print(ss)








import pylab

import random


SAMPLE_SIZE = 100


# 시드값 랜덤 생성기

random.seed()


# 생성된 랜덤값들을 여기에 저장

real_rand_var = []


# 랜덤값 일부를 선택

real_rand_vars = [random.random() for val in range(SAMPLE_SIZE)]

# 10개의 버켓으로 히스토그램 생성. 버켓이 무엇인지는 블로그에 포스팅.

pylab.hist(real_rand_vars, 10)


# x, y 레이블 정의

pylab.xlabel("Number range")

pylab.ylabel("Count")


# 그래프 그리기

pylab.show()






import pylab

import random


SAMPLE_SIZE = 100


# 평균

mean_inc = 0.2


# 표준 편차

sta_dev_inc = 1.2


# 시계열

x = range(SAMPLE_SIZE)

y = []

price_today = 0


for i in x:

    # 정규분포(normal distribution) 만들기. random.normalvariate(평균, 표준편차)

    '''

    random.normalvariate(mu, sigma)

        Normal distribution. mu is the mean, and sigma is the standard deviation.


    ref.

    Python 3.6 Document

    https://docs.python.org/3/library/random.html#random.normalvariate

    '''

    next_delta = random.normalvariate(mean_inc, sta_dev_inc)

    price_today += next_delta

    '''

    시작시 0인 price_today에 next_delta에서 발생되는 값을 계속 누적해서 더해준다.

    누적값을 y 리스트에 추가한다.

    '''

    y.append(price_today)  # 누적해서 더해준 값을 y 리스트에 추가한다.


pylab.plot(x, y)

pylab.xlabel("Time")

pylab.ylabel("Value")

pylab.show()


================================= Python =================================


fig 1. 랜덤하게 생성된 시드값의 히스토그램



fig 2. 랜덤하게 생성된 정규분포를 따르는 값의 누적 그래프.




+ Recent posts