배열값 삭제
- delete() : NumPy 배열에서 특정 인덱스의 요소를 삭제하는 데 사용한다.
- delete(array, obj, axis = None)
- array : 삭제 대상이 되는 배열
- obj : 삭제할 인덱스
- axis : None = 기본값(배열을 1차원으로 펼친 후 지정된 인덱스 삭제,
0 = 행(row) 기준 삭제, 1 = 열(column) 기준 삭
- delete(array, obj, axis = None)
주의사항
- 원본 배열은 변경되지 않는다.
- np.delete()는 새로운 배열을 반환하기 때문에 원본 배열을 수정하려면 반환값을 다시 저장해야 한다.
- np.delete()는 배열의 복사본을 생성하기 때문에 큰 배열에서 잦은 삭제 작업은 성능에 영향을 줄 수 있다.
>> 리스트(list) 사용 등으로 잦은 삭제 작업을 대체??
배열 복사
리스트(list) 자료형과 달리 배열의 슬라이스 복사본이 아니다.
- 얕은 복사(Shallow Copy)
- 얕은 복사는 참조만 복사하기 때문에 우너본 배열과 복사된 배열이 같은 메모리 주소를 공유한다.
- 복사된 배열에서 값을 변경하면 원본 배열도 변경된다.
- 깊은 복사(Deep Cpoy)
- 깊은 복사는 새로운 배열을 생성하여 원본 배열의 데이터를 복사한다.
- 복사된 배열에서 값을 변경해도 원본 배열은 영향을 받지 않는다.
얕은 복사 vs 깊은 복사
특징 | 얕은 복사 | 깊은 복사 |
동작 방식 | 참조 복사 (원본과 같은 메모리 공유) | 새로운 배열 생성 (데이터 독립) |
원본 배열 변경 여부 | O | X |
사용 방법 | = (대입 연산자) | copy() |
배열 변환
- 2차원 배열의 전치
- 행렬의 행과 열을 바꿈.
- 전치 행렬은 Matrix 곱 연산에서 두 개의 행렬의 크기를 맞출 때 사용.
- 3차원 배열의 전치
- 축 변경
- swapaxes(0, 1) : 다차원 배열에서 두 개의 축을 변경할 때 사용
- 축 0과 축 1을 교체
배열 재구조화
- reshpae() : 배열의 형상(형태)을 변경하는 함수
- 배열의 원소 개수는 그대로 유지하면서 새로운 차원으로 재구조화 함.
- newaxis() :
- 배열에 새로운 축을 추가
- 배열의 차원을 늘려줌
배열 크기 변경
- 배열 모양 변경
- np.random.randint(0, 10, (2, 5)) : 0~9 사이의 랜덤 숫자로 2x5 배열 생성.
- n2.resize((5,2)) : 크기를 5x2로 변경
배열에 값 추가
- append() : 배열의 끝에 값 추가
- aixs 지정이 없으면 1차원 배열 형태로 변형되어 결합됨.
axis를 0으로 지정했을 때
axis를 1로 지정했을 때
동작 | 차원 변경 | |
axis = 0 | 행 방향 추가 (세로) | 행 개수 증가 |
axis = 1 | 열 방향 추가 (가로) | 열 개수 증가 |
- 주의할 점 : shape이 맞아야 함.
- axis = 0 : 열 개수가 같아야 함
- axis = 1 : 행 개수가 같아야 함
배열 연결
- concatenate() : 두 개 이상의 배열을 특정 축(axis) 방향으로 연결하는 함수
- append() 보다 더 효율적이고, 여러 배열을 한 번에 합칠 수 있음
배열 분할
split() : 배열 분할
- 지정된 위치에서 분할
vsplit() : 수직 분할
-행 단위로 쪼개서 리스트의 형태로 반환
- 2차우너 이상의 배열에서만 동작
hsplit() : 수평 분할
- 열 단위로 쪼개서 리스트의 형태로 반환 (split()에서 axis = 1로 지정한 것과 동일)
산술 연산
연산자 | 함수 | 설명 |
+ | np.add | 덧셈 |
- | np.subtract | 뺏셈 |
- | np.negative | 단항 음수 |
* | np.multiply | 곱셈 |
/ | np.divide | 나눗셈 |
// | np.floor_divide | 나눗셈 내림 |
** | np.power | 지수 연산 |
% | np.mod | 나머지 연산 |
기타 함수
- 절대값 함수
- absolute(), abs()
- 제곱, 제곱근 함수
- square(), sqrt()
- 지수와 로그함수
- exp() : 자연상수(e)의 지수배 계산
- >> np.exp(2) = e^2
- exp2() : 입력 배열에 대해 2의 n제곱 계산
- power() : np.power(m, n) 형태로 작성해 m**n 연산 결과와 동일
- log() : 밑이 자연상수(e)인 로그
- log2 : 밑이 2인 로그
- exp() : 자연상수(e)의 지수배 계산
집계 함수
함수 | NaN 안전모드 | 설명 |
np.sum() | np.nansum() | 요소의 합 계산 |
np.cumsum() | np.nansumsum() | 요소의 누적 합 |
np.diff() | - | 요소의 차분 |
np.prod() | np.nanprod() | 요소의 곱 계산 |
np.dot() | - | 행렬 곱 수행 |
np.min() | np.nanmin() | 최소값 |
np.max() | np.nanmax() | 최대값 |
np.median() | np.nanmedian() | 중앙값 |
np.argmin() | np.nanargmin() | 최소값 인덱스 |
np.argmax() | np.nanargmax() | 최대값 인덱스 |
비교 연산
연산자 | 비교 범용 함수 |
== | np.equal() |
!= | np.not_equal() |
< | np.less() |
<= | np.less_equal() |
> | np.greater() |
>= | np.greater_equal() |
배열 정렬
'Python' 카테고리의 다른 글
[Python] 리스트와 튜플 (2) (0) | 2025.02.21 |
---|---|
[Python] 리스트와 튜플 (1) (0) | 2025.02.15 |
[Python] 비교, 논리 연산자 (0) | 2025.02.15 |
[Python] Pandas (0) | 2025.02.15 |
[Python] Numpy(1) (0) | 2025.01.25 |