1. 인덱싱
[1차원 인덱싱]
import numpy as np
# 1차원 배열 생성
arr1 = np.array([10, 20, 30, 40, 50])
# 1차원 배열 인덱싱 예시
print("첫 번째 요소:", arr1[0]) # 인덱스 0의 요소
print("세 번째 요소:", arr1[2]) # 인덱스 2의 요소
print("마지막 요소 (-1 인덱싱):", arr1[-1]) # 마지막 요소
---------------------------------------------------
# 첫 번째 요소: 10
# 세 번째 요소: 30
# 마지막 요소 (-1 인덱싱): 50
[2차원 인덱싱]
# 2차원 배열 생성
arr2 = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 2차원 배열 인덱싱 예시
print("첫 번째 행, 두 번째 열 요소:", arr2[0, 1]) # 인덱스 [0, 1] 요소
print("두 번째 행, 첫 번째 열 요소:", arr2[1, 0]) # 인덱스 [1, 0] 요소
print("마지막 행, 마지막 열 요소 (-1 인덱싱):", arr2[-1, -1]) # 마지막 행, 마지막 열
--------------------------------------------------------
# 첫 번째 행, 두 번째 열 요소: 2
# 두 번째 행, 첫 번째 열 요소: 4
# 마지막 행, 마지막 열 요소 (-1 인덱싱): 9
2. 슬라이싱
: [start:end:interval]형식이다.
[1차원 슬라이싱]
import numpy as np
# 1차원 배열 생성
arr1 = np.array([10, 20, 30, 40, 50, 60])
# 1차원 배열 슬라이싱
print("2번째 인덱스부터 끝까지:", arr1[2:]) # [2:]는 2번째 인덱스부터 끝까지
print("처음부터 2번째 인덱스까지:", arr1[:2]) # [:2]는 처음부터 2번째 인덱스까지
print("1번째부터 4번째까지:", arr1[1:4]) # [1:4]는 1번째부터 4번째 전까지
print("전체 배열:", arr1[:]) # [:]는 배열 전체
print("역순 배열:", arr1[::-1]) # [::-1]는 배열을 뒤집음
--------------------------------------------------
# 2번째 인덱스부터 끝까지: [30 40 50 60]
# 처음부터 2번째 인덱스까지: [10 20]
# 1번째부터 4번째까지: [20 30 40]
# 전체 배열: [10 20 30 40 50 60]
# 역순 배열: [60 50 40 30 20 10]
[2차원 슬라이싱]
# 2차원 배열 생성
arr2 = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 2차원 배열 슬라이싱
print("2번째 행부터 끝까지:", arr2[2:, :]) # [2:, :]는 2번째 행부터 끝까지
print("처음부터 2번째 행까지:", arr2[:2, :]) # [:2, :]는 처음부터 2번째 행까지
print("1번째부터 4번째 열까지:", arr2[:, 1:4]) # [:, 1:4]는 1번째 열부터 4번째 전까지 열
print("전체 배열:", arr2[:]) # [:]는 배열 전체
print("행을 역순으로:", arr2[::-1, :]) # [::-1, :]는 행을 역순으로
print("열을 역순으로:", arr2[:, ::-1]) # [:, ::-1]는 각 행의 열을 역순으로
---------------------------------------------------------------
# 2번째 행부터 끝까지: [[7 8 9]]
# 처음부터 2번째 행까지: [[1 2 3]
# [4 5 6]]
# 1번째부터 4번째 열까지: [[2 3]
# [5 6]
# [8 9]]
# 전체 배열: [[1 2 3]
# [4 5 6]
# [7 8 9]]
# 행을 역순으로: [[7 8 9]
# [4 5 6]
# [1 2 3]]
# 열을 역순으로: [[3 2 1]
# [6 5 4]
# [9 8 7]]
🚨 슬라이싱에서 주의할 점은 Numpy에서는 View를 반환하기 때문에 값을 수정하면 배열 값도 함께 변경된다. 🚨
'2학년 2학기 > 데이터 사이언스 입문' 카테고리의 다른 글
Numpy - 브로드캐스팅 (0) | 2024.09.26 |
---|---|
Numpy - Ufunc (1) | 2024.09.26 |
Numpy - ndarray의 속성 (0) | 2024.09.26 |
Numpy - random (0) | 2024.09.26 |
Numpy - 배열의 생성 (0) | 2024.09.26 |