다차원배열의 인덱스 접근
- 변수[행][열] : 인덱스 번호 입력
- 변수[행, 열] : 인덱스 번호 입력
X = np.random.randint(1, 100, (4,5))
# array([[53, 80, 81, 34, 65],
# [40, 45, 64, 96, 17],
# [53, 38, 54, 86, 26],
# [35, 9, 19, 78, 58]])
X[1][2]
# 64
X[1, 2]
# 64
슬라이싱(Slicing) - 잘라서 가져오기
- 사람의 언어로 A 부터 B 까지 = A ~ B / 컴퓨터의 언어로 A 부터 B 까지 = A : B
- 변수[A:B] : A 부터 B 까지 _인덱스 번호 입력
- 변수[A: ] : A부터 끝까지
# 1) 글자 변수
fullname = '홍길동'
fullname[1:3]
# '길동'
fullname[1: ]
# '길동'
# 2) 넘파이 어레이 1차원 배열
x
# array([ 6, 6, 12, 12, 7, 5, 11])
x[2:5+1] # 내가 원하는 인덱스 번호에서 +1 을 해주면 헷갈리지 않고 입력 가능하다
# array([12, 12, 7, 5])
- 변수[ 행 , 열 ]
행으로 잘라서 가져오기 : 변수 [ [ 원하는 행 인덱스 번호 , 원하는 행 인덱스 번호 ] , ]
열로 잘라서 가져오기 : [ , [ 원하는 열 인덱스 번호 , 원하는 열 인덱스 번호 ]
# 3) 넘파이 어레이 2차원 배열
X
# array([[53, 80, 81, 34, 65],
# [40, 45, 64, 96, 17],
# [53, 38, 54, 86, 26],
# [35, 9, 19, 78, 58]])
X[ [0, 2] , ]
# array([[53, 80, 81, 34, 65],
# [53, 38, 54, 86, 26]])
X[ : , [1,3,4] ]
# array([[80, 34, 65],
# [45, 96, 17],
# [38, 86, 26],
# [ 9, 78, 58]])
- 한 줄 띄어서 슬라이싱 하기
- ' : : ' 사용
X
# array([[ 1, 70, 70, 75],
# [100, 73, 79, 58],
# [ 82, 30, 89, 100]])
X[ 0::2 , 0:2+1 ]
# array([[ 1, 70, 70],
# [82, 30, 89]])
- 중복 제거한 값만 슬라이싱 하기
- unique() 사용
x = np.random.randint(1, 10, 20)
x
# array([4, 2, 2, 6, 4, 7, 3, 3, 1, 6, 8, 6, 7, 3, 3, 8, 5, 7, 1, 2])
# 중복 제거하고 유니크한 수를 알려줘 # 연쇄 반응 사용
np.unique(x)
# array([1, 2, 3, 4, 5, 6, 7, 8])
np.unique(x).size # 유니크한 수
# 8
'Programming Language > NumPy Library' 카테고리의 다른 글
[Python] 넘파이 슬라이싱, boolean 연산 _ & 그리고, | 또는 사용 (0) | 2024.04.07 |
---|---|
[Python] 넘파이 슬라이싱 할 때, 주의 해야 하는 점 (0) | 2024.04.07 |
[Python] 넘파이 최대값, 최소값, 전체합, 전체평균, 표준편차, axis 활용 (0) | 2024.04.05 |
[Python] 넘파이 랜덤 추출 함수 : random, randint, seed( ) (0) | 2024.04.05 |
[Python] 넘파이와 reshape( ) 사용하여 1차원 배열을 여러 차원 배열로 바꾸기 (2) | 2024.04.05 |