1. 사전 준비
import numpy as np
2. 값 생성하기
np.linspace(n,m,p) : 2개의 주어진 수 n과 m을 정확히 p개로 나눈다
# 1과 10을 정확히 10개의 수로 나눠서 리스트를 만듦.
np.linspace(start = 1, stop = 10, num = 10)
# np.linspace(1,10,10) 만 써도 된다.
결과 :
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
# 20과 300을 정확히 16개의 수로 나눠서 리스트를 만듦.
np.linspace(start = 20, stop = 300, num = 16)
결과 :
array([ 20. , 38.66666667, 57.33333333, 76. ,
94.66666667, 113.33333333, 132. , 150.66666667,
169.33333333, 188. , 206.66666667, 225.33333333,
244. , 262.66666667, 281.33333333, 300. ])
np.random.randint(n,m) : n 이상, m 미만의 정수를 랜덤하게 생성한다.
# 0 이상 5 미만의 정수를 랜덤으로 생성. (0, 1, 2, 3, 4 중에 하나가 나온다.) (randint : random + int)
np.random.randint(5)
결과 :
3
# 2 이상 6 미만의 정수를 랜덤으로 생성. (2, 3, 4, 5 중에 하나가 나온다.)
np.random.randint(2, 6)
결과 :
2
랜덤 실수 생성 (자세한건 코드블럭 참조)
np.random.random()
np.random.random_sample()
np.random.ranf()
np.random.rand()
# 0 ~ 1 사이의 랜덤 실수를 생성. (randn : random + number)
np.random.rand()
---------------------------------------------------------------------------------------
# 랜덤한 실수 20개를 리스트로 생성. (이 때는 0 ~ 1 사이가 아니다.)
np.random.randn(20)
결과 :
array([-0.52413966, -1.49840922, 0.05740143, -0.27651949, -0.78736519,
0.44756177, 0.13649896, 1.63702168, 1.02890639, -0.89092169,
-1.28288374, 0.91728318, -0.895534 , 1.3650573 , 0.37196063,
0.73743382, -1.18261309, 2.37934605, -0.19565429, 0.20248202])
array([1.03535637e-01, 5.70023544e-01, 7.02572872e-04, 8.08045078e-01,
6.13634034e-01, 6.48790214e-01, 7.50682286e-01, 9.37417620e-01,
1.95263760e-01, 7.34810650e-01, 7.43717188e-01, 7.40501963e-01,
4.81673827e-01, 5.54603665e-01, 1.84406698e-01, 1.48128889e-01,
9.33908998e-01, 4.08030348e-01, 6.24358592e-01, 3.80156610e-01])
---------------------------------------------------------------------------------------
# 랜덤한 실수를 5x2 매트릭스 리스트로 생성. (이 때는 0 ~ 1 사이가 아니다.)
np.random.randn(5,2)
결과 :
array([[ 0.00362083, 0.49833415],
[ 1.2965561 , 0.380651 ],
[-2.25599144, -0.58614511],
[ 0.32668623, 0.0905209 ],
[-1.99152505, -1.45599583]])
array([[ 1.03019403e+00, -2.05672711e-01],
[-1.01343691e+00, -6.37432377e-04],
[ 2.31580811e+00, -8.23505164e-01],
[-1.99565968e-02, 7.36097005e-01],
[ 2.07247826e-01, -4.50134775e-01]])
더보기
np.random.random()
np.random.random_sample()
np.random.ranf()
np.random.rand()함수는 모두 동일한 기능을 한다.
단, .random() 함수와 .random_sample() 함수와 .ranf() 함수는 숫자 하나 또는 1차원 리스트만 만들 수 있다.
2차원 매트릭스 리스트는 rand()함수를 써야한다.
# 0 ~ 1 사이의 랜덤 실수를 생성.
np.random.random()
결과 :
0.44488185541123304
----------------------------------------------------------------------------------------
# 0 ~ 1 사이의 랜덤 실수 20개를 리스트로 생성.
np.random.random(20)
결과 :
array([0.81787883, 0.88138734, 0.83815106, 0.94111472, 0.75181428,
0.21176745, 0.57356786, 0.23344622, 0.54272878, 0.63850807,
0.0240863 , 0.75626471, 0.40106159, 0.2368877 , 0.13573899,
0.37940687, 0.15843737, 0.37450627, 0.1753634 , 0.52339994])
np.random.random()
np.random.random_sample()
np.random.ranf()
np.random.rand()함수는 모두 동일한 기능을 한다.
단, .random() 함수와 .random_sample() 함수와 .ranf() 함수는 숫자 하나 또는 1차원 리스트만 만들 수 있다.
2차원 매트릭스 리스트는 rand()함수를 써야한다.
2. 평균, 분산, 표준편차 구하기
st1 = [100, 110, 90, 105, 95, 102, 98]
st2 = [100, 130, 70, 120, 80, 160, 40]
x = list (range(0, len(st1),))
import matplotlib.pyplot as plt
plt.plot(x,st1)
plt.plot(x,st2)
평균은 같지만 그래프 모양은 많이 다르다.
평균, 분산, 표준편차를 구해보자.
Numpy 이용
import numpy as np
# 평균
st1Mean = np.mean(st1)
st2Mean = np.mean(st2)
print('st1 average : {}, st2 average : {}'.format(st1Mean, st2Mean))
결과 :
st1 average : 100.0, st2 average : 100.0
import numpy as np
# 분산
st1Var = np.var(st1)
st2Var = np.var(st2)
print('st1 variance : {}, st2 variance : {}'.format(st1Var,st2Var))
결과 :
st1 variance : 36.857142857142854, st2 variance : 1400.0
import numpy as np
# 표준편차 (= sqrt(분산))
st1Std = np.std(st1)
st2Std = np.std(st2)
print('st1 standard deviation : {}, st2 standard deviation : {}'.format(st1Std,st2Std))
결과 :
st1 standard deviation : 6.07100838882165, st2 standard deviation : 37.416573867739416
Numpy 없이 구해보자 (표본표준편차 포함)
# 분산
temp = 0
for _ in st1:
temp = temp + (st1Mean - _) ** 2
st1Len = len(st1)
variance = temp / st1Len
variance
결과 :
36.857142857142854
# 표준편차 (= sqrt(분산))
standardDeviation = np.sqrt(variance)
standardDeviation
결과 :
6.07100838882165
# 표본표준편차. 얘는 함수가 없어서 이렇게 직접 해야한다. 아... 엑셀은 위대하다.
sampleStandardDeviation = np.sqrt(temp / (st1Len - 1))
sampleStandardDeviation
결과 :
6.557438524302
'개발자 > Python' 카테고리의 다른 글
Python (파이썬) 예외처리 try except (0) | 2020.04.25 |
---|---|
Python (파이썬) 파이썬 패키지 만들어 배포하기 pypi.org - 1편. 함수 패키지 만들기 (0) | 2020.04.25 |
Python (파이썬) 반복문 제어 - break, continue (0) | 2020.04.25 |
Pycharm (파이참) 아나콘다 연동 env 환경 설정하기 (0) | 2020.04.25 |
Python (파이썬) for문에서 in range():와 in 리스트:의 차이점 (0) | 2020.04.22 |