일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- DenseDepth
- BFS
- Calibration
- 이진탐색
- ICER
- 토끼와 경주
- 슈퍼컴퓨터클러스터
- 소프티어
- 코드트리
- ISER
- 포탑부수기
- 삼성기출
- DP
- dfs
- 마법의숲탐색
- 순서대로방문하기
- ros
- 백준
- 수영대회결승전
- 왕실의기사대결
- ARM
- 코드트리빵
- 싸움땅
- 마이크로프로세서
- 구현
- 조합
- 루돌프의반란
- 시뮬레이션
- 3Dreconstruction
- 나무박멸
Archives
- Today
- Total
from palette import colorful_colors
[Numpy] arange(), concatenate() 본문
<목차>
1. 증가하는 배열 만들기, 섞기
1-1. arange()
1-2. shuffle()
2. 배열 연결함수
2-1.concatenate()
2-2. column_stack()
1. 증가하는 배열 만들기, 섞기
1-1. arange()
넘파이에는 파이썬의 range() 함수처럼 증가하는 ndarray 인덱스를 간단히 만들 수 있는 arrange()함수가 있다.
np.arrange()의 구조는 range()와 동일하게 생각하면 된다!
np.arrange() 예시:
print(np.arange(3)) # np.arrange(멈추는 숫자) -> 0부터 2까지
print(np.arrange(1, 3)) # np.arrange(시작 숫자, 멈추는 숫자)
print(np.arrange(1, 3, 0.2)) #np.arrange(시작 숫자, 멈추는 숫자, 간격)
# 출력결과:
# [0 1 2]
# [1 2]
# [1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8]
1-2. shuffle()
증가하는 정수 배열을 만들었다면 요소를 섞어보자. 넘파이에선 np.random 모듈 안에 shuffle()을 제공한다.
주로 데이터셋을 만들고 랜덤으로 섞을때 사용한다.
np.shuffle() 예시:
index = np.arange(10)
np.random.shuffle(index)
print(index)
# 출력결과:
# [1 2 9 3 4 5 7 8 6 0]
(아마 출력값이 위와 다르게 출력될 것이다)
일반적으로 shuffle() 함수를 사용하면 실행할때마다 값이 랜덤으로 바뀐다.
하지만 실행할때마다 랜덤값이 고정으로 결정되게 만들 수도 있는데, 시드를 고정해주면 된다.
np.random.seed() 사용 예시:
np.random.seed(42)
index = np.arange(10)
np.random.shuffle(index)
print(index)
# 출력결과:
# [8 1 5 0 7 2 9 4 3 6]
이번엔 필자와 똑같은 출력 값을 얻을 수 있을 것이다.
랜덤 seed를 42번으로 고정해서 그렇다.
2. 배열 연결함수
넘파이에는 2가지의 배열 연결함수가 있다. 차이점은 차원의 유지 여부다.
np.concatenate: row(행)로 붙인다. 선택한 축(axis)를 기준으로 두 개의 배열을 연결한다.
np.stack: column(열)으로 붙인다. 파이썬의 zip함수를 대체한다.차원이 늘어난다.
- axis = 0: 옆(오른쪽)으로 붙인다 (디폴트값)
- axis = 1: 아래로 붙인다
예시를 위한 2차원 ndarray 배열 만들기
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(a)
print(b)
# 출력결과:
[[1 2]
[3 4]]
[[5 6]
[7 8]]
예시를 위해 우선 2개의 2차원 배열을 만들어보자.
2-1.concatenate()
concatenate() 예시
#전달받은 리스트를 행으로 붙인다. axis=0이면 밑(세로)으로, axis=1이면 옆(가로)으로 붙인다.
print(np.concatenate((a, b), axis =0)) # 아래(세로)로 붙인다.
print(np.concatenate((a, b), axis = 1)) # 옆(가로)로 붙인다.
# 출력결과:
[[1 2]
[3 4]
[5 6]
[7 8]]
[[1 2 5 6]
[3 4 7 8]]
2-2. column_stack()
column_stack() 예시
# 전달받은 리스트를 일렬로 세우고 나란히 연결한다. 연결할 리스트는 튜플로 전달한다. 차원이 증가한다.
print(np.stack((a, b), axis =0)) # 2차원 2개가 3차원으로 합쳐진다.
# 출력결과:
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
reference, 사진출처: 혼자 공부하는 머신러닝 + 딥러닝
'CS 학부과목 > Python' 카테고리의 다른 글
opencv를 이용해 동영상에서 이미지 추출하기 (0) | 2023.08.11 |
---|---|
[Numpy] (마무리) N차원 배열 차원 변경: reshape(), resize() (1) | 2023.01.29 |
[Numpy] ndarray, 연산, 인덱싱, 통계함수 (0) | 2023.01.29 |
코랩(Colab) 단축키 정리 (1) | 2023.01.29 |
코랩(Colab) 처음 시작하기,사용방법 정리 (4) | 2023.01.29 |