1. 1차원 Array Indexing
1) Indexing
일반적인 파이썬에서 리스트를 인덱싱하는 방법과 동일하다
크기가 N인 Array가 있다면 []를 활용해 0번 ~ N-1번까지 인덱싱 할 수 있다.
반대로 뒤에서부터 인덱싱을 하고 싶다면 -1번 ~ -N번까지 인덱싱 할 수 있다.
array_one = np.arange(1,11)
print(f'array_one[0]: {array_one[0]}')
print(f'array_one[5]: {array_one[5]}')
print(f'array_one[9]: {array_one[9]}')
print(f'array_one[-5]: {array_one[-5]}')
print(f'array_one[-1]: {array_one[-1]}')
## 출력
array_one[0]: 1
array_one[5]: 6
array_one[9]: 10
array_one[-5]: 6
array_one[-1]: 10
2) slicing
a[s:] : a 배열의 s번째 인덱스부터 끝까지 slicing
a[:s] : a배열의 처음부터 s-1번째 인덱스까지 slicing
a[s:d] : a배열의 s번쨰 인덱스부터 d-1번째 인덱스까지 slicing
a[s:d:k] : a배열의 s번쨰 인덱스부터 d-1번째 인덱스까지 k 간격으로 slicing
Array를 slicing함과 동시에 값을 변경할 수도 있고 특정 원소들만 선택해 slicing할 수도 있다.
다음과 같이 특정 원소들만 선택해 slicing하는 것을 fancy indexing이라고 한다.
a = np.arange(1, 6) #[1,2,3,4,5]
# 슬라이싱과 동시에 값 변경
a[2:4] = 0
print(a) #[1,2,0,0,5]
# 특정 원소만 인덱싱(fancy indexing)
# 1,3,4 번 인덱스의 원소들만 slicing
print(a[[1,3,4]]) #[2,4,5]
2. 2차원 Array Indexing
1) Indexing
[][]식으로 차원별로 대괄호를 사용하여 indexing 한다.
2차원 Array는 행과 열을 따로 인덱싱이 가능하며, 0부터 N-1까지 인덱스가 있다.(N×N)일 경우
5는 array[1][1]로 indexing할 수 있다.
2) slicing
1차원과 동일하게 각 열과 행을 0부터 N-1까지 K step만큼씩 인덱싱 할 수 있다.
콤마(,)를 기준으로 앞은 row slicing, 뒤는 column slicing 이다.
row와 column을 슬라이싱하고 겹치는 부분이 반환된다.
'💂군대 > KAIST ICT Academy' 카테고리의 다른 글
[Numpy] Random Number generation (2) | 2024.11.10 |
---|---|
[Numpy] Boolean Masking (1) | 2024.11.09 |
[Numpy] Broadcasting (0) | 2024.11.03 |
[Numpy] Array manipulation (0) | 2024.11.02 |
[Numpy] Numpy Arrays (0) | 2024.11.02 |