[NumPy] Ch2. N차원 배열 인덱싱
2-1. 배열의 index 접근하기
index를 통한 인덱싱
원소의 인덱스로 원소에 접근
# 1차원 배열
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(arr[1]) # 1
print(arr[-1]) # 9
print(arr[3:8]) # [3 4 5 6 7]
print(arr[:-1]) # [0 1 2 3 4 5 6 7 8]
# 2차원 배열
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
print(arr[0, :]) # 0번째 행의 모든 값(:)을 출력, [1 2 3 4]
print(arr[:, 1]) # 모든 행(:)의 1번째 열을 출력, [2, 6, 10]
print(arr[:2, 2:])
’:’는 ‘모든’을 의미함
2-2. 배열의 Fancy 인덱싱
Fancy 인덱싱
특정 인덱스를 여러개 선택을 해서 탐색하는 방법
# 1차원 배열
arr = np.array([5, 10, 15, 20, 25, 30])
print(arr[[0, 2, 4]]) # 0, 2, 4번째 원소를 가져와라, [ 5 15 25]
# 2차원 배열
arr = np.array([[5, 10, 15, 20],
[25, 30, 35, 40],
[45, 50, 55, 60]])
print(arr[[0, 2], 2:]) # 0, 2행에 대해서 2열부터 끝까지 선택
print(arr[1:, [2, 3]])
2-3. 배열의 Boolean 인덱싱
Boolean 인덱싱
True에 해당하는 값을 가져오고, False는 가져오지 않음
arr = np.array([1, 2, 3, 4])
print(arr[[True, False, True, False]]) # [1 3]
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8]])
print(arr[[True, False], True]) # [[1 2 3 4]]
2-4. 배열의 범위 인덱싱
범위 인덱싱
주어진 조건에 맞는 값을 반환
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8]])
print(arr[arr > 3]) # 3초과의 값을 가져옴