오답노트
[Numpy] 배열 인덱싱 본문
일반적인 배열 인덱싱
파이썬에서 리스트 인덱싱 방법과 같다.
1차원 배열 인덱싱
#1차원 배열
arr = np.arange(10)
print(arr) #[0 1 2 3 4 5 6 7 8 9]
print(arr[3]) # 3
print(arr[-1]) # 9
#부분 출력
print(arr[:3]) # [0 1 2]
print(arr[-2:]) # [8 9]
print(arr[3:8]) # [3 4 5 6 7]
print(arr[3:]) # [3 4 5 6 7 8 9]
print(arr[:7]) # [0 1 2 3 4 5 6]
print(arr[:-5]) # [0 1 2 3 4]
print(arr[-5:]) # [5 6 7 8 9]
2차원 배열 인덱싱
# 2차원 배열
arr = np.array([[1,2,3,4],
[5,6,7,8,],
[9,10,11,12]])
print(arr, arr.shape, arr.ndim)
'''''''
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]] (3, 4) 2
'''''''
print(arr[0][3]) # 4
print(arr[0,3]) # 4
# 부분 출력
print(arr[0,:]) # 행 출력 => [1 2 3 4]
print(arr[:,1]) # 열 출력 => [ 2 6 10]
print(arr[:2, :]) #1행 까지 , 모든 열 출력
'''''''
[[1 2 3 4]
[5 6 7 8]]
'''''''
print(arr[:1, 1:]) #0행 까지, 1열부터 출력
'''''''
[[2 3 4]]
'''''''
Fancy 인덱싱
배열에서 원하는 원소들을 한번에 조회하거나 범위를 지정하여 조회할 수 있다.
1차원 배열 Fancy 인덱싱
arr = np.array([5,10,15,20,25,30])
print(arr[[0,2,4]]) # [ 5 15 25]
2차원 배열 Fnacy 인덱싱
arr = np.array([[5,10,15,20,25,30],
[35,40,45,50,55,60],
[65,70,75,80,85,90]])
print(arr[[0,2],2:])
'''''''
[[15 20 25 30]
[75 80 85 90]]
'''''''
print(arr[1:,[2,3]])
'''''''
[[45 50]
[75 80]]
'''''''
배열의 Boolean 인덱싱
True 또는 False 값으로 조회를 할지 안할지 결정할 수 있다.
또는 조건문을 만들어서 해당 조건에 충족되는 모든 원소를 조회할 수 있다.
Boolean 인덱싱을 할때 주의할 점은 대괄호를 열어 사용할 때, 원소의 개수를 맞춰줘야한다.
2차원 이상일 경우에는 행 또는 열의 개수를 맞춰줘야한다.
1차원 배열 Boolean 인덱싱
arr = np.array([1,2,3,4])
print(arr[[True,False,True,False]]) # [1 3]
print(arr[arr>2]) # [3 4]
print(arr[arr<=2]) # [1 2]
코드블럭 2줄에서 True인 원소는 출력하고 False인 원소는 출력하지 않았다.
3, 4줄은 해당 조건식에 맞는 원소들을 출력했다.
2차원 배열 Boolean 인덱싱
arr = np.array([[1,2,3,4],
[5,6,7,8,],
[9,10,11,12]])
# 3행 4열 행열이기때문에 3개의 Boolean 값, 열은 모두 출력하므로 1개만 사용
print(arr[[True,False,True],True])
'''''''
[[ 1 2 3 4]
[ 9 10 11 12]]
'''''''
print(arr[arr>4]) # [ 5 6 7 8 9 10 11 12]
print(arr[arr<=4]) # [1 2 3 4]
'Python > Numpy' 카테고리의 다른 글
[Numpy] 배열의 내적, 절대 값, 소수 관련 연산 (0) | 2022.07.10 |
---|---|
[Numpy] 배열의 기본적인 연산 (0) | 2022.07.10 |
[Numpy] 난수로 이루어진 N차원 배열 (0) | 2022.07.08 |
[Numpy] 특정 범위의 값을 가지는 N차원 배열 생성 (0) | 2022.07.07 |
[Numpy] 정해진 형식의 N차원 배열 생성 (0) | 2022.07.07 |