2020/05/28 - [python] - [python] Numpy
Numpy에서 zeros / ones / full / eye 함수
import numpy as np
c = np.zeros((2, 2))
print(c, end = '\n\n')
d = np.ones((2,2))
print(d, end = '\n\n')
d = np.full((2,2 ), 10)
print(d, end = '\n\n')
e = np.eye(3) # 3행 3열짜리 단위행렬
print(e, end = '\n\n')
# 출력 결과
[[0. 0.]
[0. 0.]]
[[1. 1.]
[1. 1.]]
[[10 10]
[10 10]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
np.zeros((2,2)) 는 2 행 2 열 짜리 2차원 배열을 0 으로 초기화 하겠다는 의미입니다.
np.ones ((2,2)) 는 2행 2열 짜리 2차원 배열을 1로 초기값을 설정해주는 것입니다.
np.full ((2,2), 10) 의 경우는 2행 2열 짜리 2차원 배열을 10으로 초기화 하겠다는 의미입니다.
저 위치에 다른 정수를 넣을 경우 해당 정수로 초기화하며 출력합니다.
np.eye(3) 의 경우 단위 행렬을 만드는 함수로 안의 정수값에 해당하는 단위 행렬을 출력해줍니다. 여기서는 3,3ㄷ의 단위 행렬을 출력해줍니다.현재는 3단위 행렬이지만, np.eye(2)를 할 경우, 2x2 행렬이 만들어집니다.
Numpy 난수 값 얻기
np.random.seed(0)
print(np.random.rand(3), end = '\n\n')
print(np.random.randn(5), end = '\n\n')
print(np.random.randint(3, size=6), end = '\n\n')
print(np.random.randint(3, size=(3,4)), end = '\n\n')
print(np.random.randint(3, size=(3,4,5)), end = '\n\n')
print(list(range(3)), end = '\n\n')
print(np.arange(3), end = '\n\n')
f = {i:np.random.randn() for i in range(3)}
print(f, end = '\n\n')
# 출력 결과
[0.5488135 0.71518937 0.60276338]
[-2.2683282 1.33354538 -0.84272405 1.96992445 1.26611853]
[2 0 1 1 1 1]
[[0 1 0 0]
[1 2 0 2]
[0 1 1 2]]
[[[0 1 1 1 0]
[2 0 2 2 0]
[2 0 0 0 1]
[1 2 0 0 1]]
[[0 1 2 2 0]
[1 1 1 1 2]
[2 2 0 2 1]
[0 1 2 0 0]]
[[2 0 0 0 0]
[0 0 2 0 2]
[1 1 1 0 1]
[1 1 0 1 2]]]
[0, 1, 2]
[0 1 2]
{0: -0.5058765397605117, 1: 0.42539339846964996, 2: -0.027971183469780222}
np.random.seed(0) 란 임의의 시드를 생성합니다. seed 안에 값을 넣으면 항상 같은 결과를 반환합니다
np.random.rand(3) 란 난수 발생 균등분포를 따르기 때문에 음수 값은 출력되지 않습니다.
np.dandom.randn(5) 란 표준 정규분포를 따르는 난수를 발생시킵니다. rand() 와는 다르게 음수도 출력합니다.
맨 처음 seed에 0을 넣줬기 때문에 현재는 반복하여 출력하여도 같은 결과만 출력하게 됩니다.
매 출력 다른 결과를 원하신다면 seed(0)에서 0을 빼시면 됩니다.
np.random.randint()는randint(정수값)의 범위 내에서 균일분포의 정수난수를 발생 시킵니다. 여기서
(np.random.randint(3, size=6) 는 0~2 사이의 정수난수를 발생기키고 size는 6개를 받도록 하였습니다.
np.random.randint(3, size=(3,4) 의 경우는 범위는 위와 동일하지만, size는 2행 3열의 2차원 배열을 출력합니다.
'python' 카테고리의 다른 글
[Python] Numpy (4) - 배열 연산 , 벡터 내적 (0) | 2020.06.01 |
---|---|
[Python] Numpy (3) - 슬라이싱 , 서브배열 (0) | 2020.06.01 |
[python] Numpy 데이터타입, 메모리저장, 배열 (0) | 2020.05.28 |
python - Thread ( 스레드 ) (1) (0) | 2020.05.14 |
python - DataBase 연동 & SQL 작업 (0) | 2020.05.13 |