티스토리 뷰
numpy package에는 random이라는 module이 있다.여기에 있는 random 함수를 쓰면 0에서 1 사이의 수를 반환해준다.
1 2 3 | import numpy as np numpy.random.random() | cs |
만약 여러개의 값을 한꺼번에 반환받고 싶으면, random 함수의 인자로 자기가 받고 싶은 자료의 크기를 넣어주면 된다. 예를 들어 1x5의 random 함수의 결과를 받고 싶으면
1 | numpy.random.random(5) | cs |
를 해주면 되고, 만약 2행 2열의 행렬의 형태로 받고 싶으면
1 | numpy.random.random((2,2)) | cs |
위와 같이 tuple의 형식으로 집어넣으면 된다. 물론 이에 대한 반환값의 자료는 numpy의 array 형태로 나온다. 물론 위의 형태는 단순한 random 함수 이고, 이 반환되는 값이 정규 분포(normal distribution)을 띄게끔도 할 수 있다. random module에 포함되어 있는 normal 함수를 사용해서 말이다. 그중 평균이 0이고 표준편차가 1인 표준 정규를 띄는 값을 얻고 싶은 경우, 첫번째 인자로 0, 두번째 인자로 1을 넣어주면 된다.
1 2 3 | mean = 0 std = 1 np.random.normal(mean, std) | cs |
물론 이것도 앞에서 소개한 random과 같이 동시에 여러 개의 값을 array형태로 반환받을 수 있다. 그 크기를 세번째 인자로 넣어주면 된다. 예를 들어 5x3 의 행렬로 반환받고 싶은 경우,
1 2 3 4 5 6 | mean = 0 std = 1 np.random.normal(mean, std) # 5x3 np.random.normal(mean, std, (5,3)) | cs |
라고 해주면 된다.
위와 같은 경우는 아마 결과를 확인해 본 사람은 알겠지만 실수형태로 반환된다. 만약 정수형태로 반환받고자 할경우 randint 함수를 쓴다. 이때 첫번째는 가장 낮은 값, 두번째는 가장 높은 값, 결국 두 값 사이의 한 정수를 임의로 반환해주는 함수도 이 함수도 역시 세번째 인자로 크기를 받기 때문에 적당한 크기를 삽입해주면 된다.
1 2 3 4 | int_min = 0 int_max = 10 np.random.randint(int_min, int_max, (5,3)) | cs |
여기서 좀 응용을 해보자면 위와 같은 함수의 결과로 5x3 크기의 행렬이 생겼을텐데 각 행 혹은 각 렬의 합은 어떻게 구할까? 사실 일반 python에서 제공하는 sum 함수는 단순히 행렬 전체의 합만 반환해주지만, numpy의 sum은 dimension을 지정해서 해당 dimension에서의 합을 따로 분리해낼 수 있다. 예를 들어 위와 같이 randint의 output을 특정 변수에 넣고 sum을 통해서 각 행과 열의 합을 구하려면 다음과 같이 하면 된다.
그런데 현재 X의 크기는 5x3으로 지정되어 있는데, axis=2, 즉 차원을 하나 더 올리면 어떻게 될까? 그건 직접 해보길 바란다.
'Study > AI' 카테고리의 다른 글
[Python] Cartopy install 및 실행 (0) | 2017.05.30 |
---|---|
[ML] KNN 구현해보기 - Finding Nearest Neighbors (2) | 2017.05.23 |
[ML] KNN 구현해보기 - Introduction (2) | 2017.05.23 |
[DL] 해보면서 배우는 딥러닝 - ANN 평가하기 (2) | 2017.05.09 |
[DL] 해보면서 배우는 딥러닝 - tensorflow를 GPU로 구동하는 방법 (0) | 2017.04.26 |
[DL] 해보면서 배우는 딥러닝 - ANN 구현 (3) (0) | 2017.04.25 |
[DL] 해보면서 배우는 딥러닝 - ANN 구현 (2) (0) | 2017.04.23 |
- Total
- Today
- Yesterday
- Kinect
- 한빛미디어
- RL
- TensorFlow Lite
- PowerPoint
- Gan
- Kinect for windows
- bias
- 강화학습
- ai
- Policy Gradient
- SketchFlow
- processing
- Off-policy
- Expression Blend 4
- Pipeline
- Windows Phone 7
- ColorStream
- Kinect SDK
- reward
- 딥러닝
- Variance
- arduino
- dynamic programming
- Distribution
- windows 8
- 파이썬
- DepthStream
- Offline RL
- End-To-End
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |