2022년 9월 28일 수요일

Numpy Indexing 인덱싱

 

Indexing

배열 인덱싱은 항상 대괄호([ ])를 사용하여 배열의 요소를 인덱싱하므로 값 추출, 항목 선택 또는 새 값 할당과 같은 다양한 용도로 요소를 개별적으로 참조할 수 있습니다. 새 배열을 생성하면 적절한 스케일 인덱스도 자동으로 생성됩니다.

4번째 element를 선택하는 예제입니다. 여기는 파이썬이랑 별반 다를 게 없죠.

>>> a = np.arange(10, 16)
>>> a
array([10, 11, 12, 13, 14, 15])
>>> a[4]
14

negative indexing입니다 이부분도 파이썬과 비슷합니다.

>>> a[–1]
15
>>> a[–6]
10

멀티로 indexing을 선택합니다. 이 부분은 표준 파이썬과 좀 다릅니다. 복수로 선택이 됩니다.

>>> a[[1, 3, 4]]
array([11, 13, 14])

2차원의 경우, 즉 행렬로 이동하면 행과 열로 구성된 직사각형 배열로 표시되며 두 축으로 정의됩니다. 여기서 축 0은 행으로 표시되고 축 1은 열로 표시됩니다. 따라서 이 경우의 인덱싱은 한 쌍의 값으로 표시됩니다. 첫 번째 값은 행의 인덱스이고 두 번째 값은 열의 인덱스입니다. 따라서 행렬의 값에 액세스하거나 요소를 선택하려는 경우 여전히 대괄호를 사용하지만 이번에는 두 개의 값[행 색인, 열 색인]이 있습니다(그림 3-4 참조).

>>> A = np.arange(10, 19).reshape((3, 3))
>>> A
array([[10, 11, 12],
 [13, 14, 15],
 [16, 17, 18]])

[1, 2]로 지정하면, row , column 순으로 지정 가능합니다. 이 방법은 numpy만 동작합니다. python은 아래와 같이 A[1][2]만 동작을 합니다

>>> A[1, 2]
15
>>> A[1][2]
15
이상으로 Numpy Indexing에 대해서  확인해보았습니다. indexing자체는 파이썬 list를 가지고 handling하는 것과 비슷해 보이지만, numpy 와 python이 조작이 미세하지만 약간은 다른 것들이 있으니 이 차이를 알아 두면 요긴 할 때가 있습니다.






댓글 없음:

댓글 쓰기