numpy의 배열을 생성하는 다양한 방법들을 알아보자.
arange 함수
- 범위를 지정해서 범위 내의 값을 가진 array를 생성한다.
- 파이썬의 range와 유사한 역할을 한다.
- step의 크기를 float로 줄 수 있다.
test_array = np.arange(0, 5, 0.5) # step의 크기가 0.5
print(test_array)
# 출력: [0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5]
zeros, ones 함수
값을 0(또는 1)으로 채운 array를 생성한다.
np.zeros(shape, dtype, order)
np.ones(shape, dtype, order)
파라미터 중 order은 메모리에서 row-major로 저장될 것인지, column-major로 저장될 것인지를 지정한다.
z = np.zeros((2, 5), np.int8)
print(z)
# 출력:
# [[0 0 0 0 0]
# [0 0 0 0 0]]
empty 함수
- shape만 주어지고 비어있는 array를 생성한다.
- 값을 따로 초기화해주지 않으면, 이전에 메모리에 올라가 있던 값이 출력될 수 있으므로 주의해야 한다.
e = np.empty((3, 5))
print(e)
# 출력:
# [[0. 0. 0.4472136 0.0531494 0.18257419]
# [0.4472136 0.2125976 0.36514837 0.4472136 0.4783446 ]
# [0.54772256 0.4472136 0.85039041 0.73029674 0.4472136 ]]
# 위 출력값들은 모두 쓰레기값이다.
something_like 함수
인자로 주어진 array의 shape과 같은 모양의 1, 0 또는 empty array를 반환한다.
test_matrix = np.arange(12).reshape(3,4)
print(np.ones_like(test_matrix))
# 출력:
# [[1 1 1 1]
# [1 1 1 1]
# [1 1 1 1]]
identity 함수
단위 행렬을 생성한다.
i = np.identity(3, np.int8)
print(i)
# 출력:
# [[1 0 0]
# [0 1 0]
# [0 0 1]]
eye 함수
- 대각선이 1인 행렬을 생성한다.
- k값을 지정하여 대각선이 시작할 열의 위치를 조정할 수 있다.
- k의 기본값은 0
m = np.eye(3, 5, k=2, dtype = np.float32)
print(m)
# 출력:
# [[0. 0. 1. 0. 0.] 세번째 열부터 대각선이 시작한다.
# [0. 0. 0. 1. 0.]
# [0. 0. 0. 0. 1.]]
random sampling
np.random.uniform(시작값, 끝값, 추출 개수)
np.random.normal(평균, 표준 편차, 추출 개수)
np.random.uniform(0, 1, 10).reshape(2, 5) # 균등분포
np.random.normal(0, 1, 10). reshape(2, 5) # 정규분포
'AI > Numpy' 카테고리의 다른 글
[Numpy] where 함수 사용법 (0) | 2023.03.08 |
---|---|
[Numpy] numpy 배열 간 연산 (0) | 2023.03.08 |
[Numpy] numpy 배열 합치기 (0) | 2023.03.08 |
[Numpy] axis란 무엇일까? (0) | 2023.03.08 |
[Numpy] numpy 배열 다루기 (0) | 2023.03.08 |