본문 바로가기
2학년 2학기/데이터 사이언스 입문

Numpy - 배열 내 요소 접근(인덱싱과 슬라이싱)

by kkkkk1023 2024. 9. 26.

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