1. 배열의 재구조화란?
배열의 차수를 변경한다.
1.1 numpy.reshape(a, newshape) 또는 ndarray.reshape(newshape)⭐
- 내가 원하는대로 형태를 변경할 수 있다. 단, 원소의 개수가 같을 때 변경 가능.
- 최종적으로 원소수는 같아야한다.
- a: 형태를 변경할 배열
- newshape : 변경할 형태 설정.
- 원소의 개수를 유지하는 shape으로만 변환 가능하다.
- 1 넣을 수 있음.
1.2 np.newaxis 이용해 차원 늘리기
- 단순히 차원을 늘릴때 사용한다.
- 지정한 곳에 size 1인 축을 추가한다.
- 벡터를 행렬로 바꿀 때사용.
1.2.1 slicing에 사용한다.
1.2.2 indexing에 ... 과 같이 사용
- ndarray[..., np.newaxis]
- 첫번째 축이나 마지막 축을 늘릴때만 사용가능
1.3 flatten()⭐
다차원 배열을 1차원으로 만든다.
1.4 numpy.append(), numpy.insert(), numpy.delete()
1.4.1 append(배열, 추가할값, axis=None)
- 배열의 마지막 index에 추가할값을 추가
- axis : 축 지정
- None(기본값) : flatten 한 뒤 추가한다.
- append()
1.4.2 insert(배열, index, 추가할값, axis=None)
- 배열의 index에 추가할값을 추가.
- axis : 축 지정
- None(기본값) : flatten 한 뒤 삽입한다.
- insert()
1.4.3 delete(배열, 삭제할index, axis=None)
- 배열의 삭제할index의 값들을 삭제한다.
- 삭제할 index는 index 또는 slice
- axis : 축 지정
- None(기본값) : flatten 한 뒤 삭제한다.
- delete()
2. 배열 합치기
조인이랑 비슷하지만 다르다. 단순하게 붙임. 축의 사이즈는 바뀌지만, 축의 개수가 바뀌지는 않는다.
2.1 np.concatenate(합칠 배열리스트, axis=0)
- 여러 배열을 축의 개수(rank)를 유지하며 합친다.
- axis 파라미터 : 축지정
- 지정된 축을 기준으로 합친다.
- default : 0
- 합치는 배열의 축의 개수(rank)는 같아야 한다.
- axis속성으로 지정한 축을 이외의 축의 크기가 같아야 한다.
- 결과의 축의개수(rank)는 대상 배열의 rank와 같다.
- concatenate()
2.2 합칠 대상 배열의 rank가 2일 경우(행렬)
- vstack()
- hstack()
- np.concatenate()의 간단버전
2.2.1 vstack(합칠배열리스트)
- 수직으로 쌓는다.
- concatenate() 의 axis=0 와 동일
- 합칠 배열들의 열수가 같아야 한다.
- vstack()
- 아래에 붙이는 개념이므로 열수가 맞아야 한다.
- axis=0과 동일
2.2.2 hstack(합칠배열리스트)
- 수평으로 쌓는다.
- concatenate() 의 axis=1 와 동일
- 합칠 배열들의 행 수가 같아야 한다.
- hstack()
- 옆으로 붙이는 것이므로 행 수가 같아야 한다.
- axis=1과 동일
3 배열 분할 하기
내가 지정한 축을 제외한 나머지 축은 바뀌지 않는다.
3.1 split(배열, 분할기준, axis)
- 지정한 축을 기준으로 배열을 나눈다..
- 반환값: 분할한 narray를 가진 리스트로 리턴.
- 배열: 분할할 배열
- 분할기준
- 정수 : 지정 개수만큼 분할. 쪼개진 애들의 개수가 같아야한다.
- 리스트 : 분할 기준 index들. 인덱스가 두 개면 세 개로 나누고, 세 개면 네 개로 나눈다.
- axis(축)
- 분할할 기준 축을 지정한다. axis = 0 (기본)
- 2D의 경우 axis=0: 행 기준 분할, axis=1: 열 기준 분할
3.2 vsplit(배열, 분할기준)
- 행 기준 분할
- split()의 axis=0과 동일
- 분할기준
- 정수 : 지정 개수만큼 분할
- 리스트 : 분할 기준 index들
3.3 hsplit(배열, 분할기준)
- 열 기준 분할
- split()의 axis=1과 동일
- 분할기준
- 정수 : 지정 개수만큼 분할
- 리스트 : 분할 기준 index들 주의: 분할기준을 정수(개수)로 할 경우 분할 후 원소수가 같아야 한다.