목차
접기
"""
배열 인덱싱 : fancy indexing
"""
import numpy as np
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
idx = np.array([True, False, True, False, True,
False, True, False, True, False])
print('불리언 인덱싱:', a[idx]) # TRUE는 리턴해주고, False는 안해줌
# 조건문을 이용한 연산
print(a % 2 == 0)
print(a[a % 2 == 0])
# 정수 배열 인덱싱 : 인덱스 배열의 요소 각각이 ndarray객체를 가리키는 인덱스 정수여야 함
a = np.array([11, 22, 33, 44, 55, 66, 77, 88, 99])
idx = np.array([0, 2, 4, 6, 8])
print(a[idx]) # a[0], a[2], a[4], a[6], a[8] 출력되는 결과
# 배열인덱스의 크기는 달라도 상관없음
# 인덱스가 배열의 범위를 벗어나는 경우 에러
idx = np.array([0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 6])
print(a[idx])
# 다차원 배열의 인덱싱
x = np.array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]])
print(x[:, [True, False, True, False]])
'''
Question
1. 3의 배수를 출력
2. 4로 나누면 1이 남는수 출력
3. 3으로 나누면 나누어지고, 4로 나누면 1이 남는 수를 출력
'''
x = np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]])
print(
'1. 3의 배수를 출력:', x[x % 3 == 0],
'\n2. 4로 나누면 1이 남는수 출력:', x[x % 4 == 1],
'\n3. 3으로 나누면 나누어지고, 4로 나누면 1이 남는 수를 출력:', x[(x % 3 == 0) & (x % 4 == 1)]
)
[코드 실행 결과]
불리언 인덱싱: [0 2 4 6 8]
[ True False True False True False True False True False]
[0 2 4 6 8]
[11 33 55 77 99]
[11 11 11 11 11 66 66 66 66 66 66 99 99 99 99 99 99 77]
[[ 0 2]
[ 4 6]
[ 8 10]]
1. 3의 배수를 출력: [ 3 6 9 12 15 18]
2. 4로 나누면 1이 남는수 출력: [ 1 5 9 13 17]
3. 3으로 나누면 나누어지고, 4로 나누면 1이 남는 수를 출력: [9]
728x90