티스토리 뷰
NumPy 랜덤 생성 함수¶
- np.random.rand()
- np.random.randn()
- np.random.randint()
- np.random.normal()
- np.random.uniform()
- np.random.permutation()
- np.random.choice()
- np.random.seed()
In [1]:
import numpy as np
import matplotlib.pyplot as plt
randn()¶
- 0~1 사이의 임의의 실수 선택(1은 제외)
In [18]:
a = np.random.rand(5,5) #[0,1] 구간의 임의의 실수 선택
a
Out[18]:
In [19]:
a>0.5
Out[19]:
In [20]:
a.mean()
Out[20]:
In [21]:
(a>0.5).sum(), (a>0.5).mean()
Out[21]:
In [34]:
a2 = np.random.rand(100)
plt.hist(a2)
plt.title('Histogram - rand()')
Out[34]:
In [35]:
a2 = np.random.rand(1000)
plt.hist(a2)
plt.title('Histogram - rand()')
Out[35]:
In [36]:
a2 = np.random.rand(10000)
plt.hist(a2)
plt.title('Histogram - rand()')
Out[36]:
In [39]:
a = np.random.randn(5,5)
a
Out[39]:
In [43]:
a.mean()
Out[43]:
In [44]:
a>0
Out[44]:
In [45]:
(a>0).sum(), (a>0).mean()
Out[45]:
In [59]:
a[a>1]
Out[59]:
In [55]:
a2 = a.copy() # 이상치(outlier) 처리
a2[a2>1] = 1
a2
Out[55]:
In [57]:
an = np.random.randn(100)
plt.hist(an, bins=30) # bins : 구간을 몇개로 줄 것이냐.
plt.title('Histogram - randn()')
Out[57]:
In [64]:
an = np.random.randn(10000)
plt.hist(an, bins=60)
plt.title('Histogram - randn()')
Out[64]:
In [65]:
an.max(), an.min()
Out[65]:
randint()¶
- 범위 안의 정수 선택
In [77]:
a = np.random.randint(10, size=[5,3]) # 0 ~ 9의 정수를 뽑아라
a
Out[77]:
In [78]:
a.mean()
Out[78]:
In [79]:
a.mean(axis=0)
# axis=0 이면 a의 각 열의 평균을 구한다.
Out[79]:
In [81]:
a.mean(axis=1)
# axis=1 이면 a의 각 행의 평균을 구한다.
Out[81]:
모의실험¶
In [83]:
a= np.random.randint(2, size=[1000,100]) # 동전 던지기
a[:10,:10] # 일부만 뽑겠다
Out[83]:
In [85]:
a.mean()
Out[85]:
In [87]:
coin_count = a.sum(axis=1)
coin_count[:100]
Out[87]:
In [88]:
plt.hist(coin_count, bins=range(101)) ## 동전 나온 횟수가 몇번씩 나왔는지.
Out[88]:
randint를 이용해 게임을 해볼 수 있다. randint(2)는 동전, randint(6)은 주사위, randint(53)은 카드 등 여러가지 모의 실험을 할 수 있다.
normal()¶
uniform()¶
- 정해진 범위 내에서 실수 선택
In [93]:
a = np.random.uniform(100,200,50)
a
Out[93]:
permutation()¶
- 숫자를 임의로 섞는다
- 중복되지 않은 인덱스를 뽑아 낼 수 있다.
In [94]:
a = np.arange(100)
a
Out[94]:
In [97]:
a2 = np.random.permutation(a) # 기존의 값들을 마음대로 섞어버리기
a2
Out[97]:
150개 iris에 permutation을 사용한다는 의미는 임의의 sample을 뽑는다는 것을 의미한다.
'beginner > 파이썬 기초' 카테고리의 다른 글
| NumPy_사칙연산 (0) | 2019.02.13 |
|---|---|
| NumPy_랜덤-2 (0) | 2019.02.13 |
| NumPy_생성하기 (0) | 2019.02.12 |
| 함수와 모듈 (0) | 2019.02.11 |
| NumPy_잘라내기 (0) | 2019.02.11 |