본문 바로가기

코딩으로 익히는 Python/Numpy

[Python] 03. numpy 인덱싱(Indexing),슬라이싱(Slicing) : boolean indexing, np.array()예제

728x90
반응형
SMALL
import numpy as np

 

arr = np.array([11,22,33,44,55])
arr
[OUT] :

array([11, 22, 33, 44, 55])

인덱싱(indexing)

arr[0]
[OUT] :

11

 

arr[-1]
[OUT] :

55

 

arr[[0,2,3]] # 복수개의 인덱스 선택
[OUT] :

array([11, 33, 44])

Boolean indexing (element-wise)

arr[[True,True,False,False,True]]
[OUT] :

array([11, 22, 55])

 

arr>30
[OUT] :

array([False, False,  True,  True,  True])

 

arr[arr>30]
[OUT] :

array([33, 44, 55])

슬라이싱(slicing)

# [시작:끝:증가치]
arr[1:4:1] # 1<= idx <4 즉, idx = [1,2,3]
[OUT] :

array([22, 33, 44])

인덱싱(indexing), 슬라이싱(slicing) 연습문제

 

#1. 연봉데이터 salary에서 각 연봉에 대한 세금 3.3%를 제한 실수령액을 구하시오.

 

salary = np.array( [1000,2000,3000,4000,5000])

 

#1 solution

 

result = salary - salary * 0.033
result
[OUT] :

array([ 967., 1934., 2901., 3868., 4835.])

 

#2. name에서 '철' 글자가 있는 데이터를 보이시오.

 

name = np.array(['홍길동','김철수','임꺽정','김철이','이황'])
name
[OUT] :

array(['홍길동', '김철수', '임꺽정', '김철이', '이황'], dtype='<U3')

 

#2 solution

 

for n in name:
    if '철' in n:
        print(n)
[OUT] :

김철수
김철이

Review
- boolean indexing 활용 많이 됨
728x90
반응형
LIST