본문 바로가기
Python

Numpy 인덱싱 (indexing)

by 코딩하는 미토콘드리아 bioinformatics 2022. 1. 3.
반응형

인덱싱을 통해서

넘파이 ndarray 내의 특정 데이터 세트나 일부 데이터만을

선택하여 추출 할 수 있다.

특정한 데이터만 추출 하는 방법에 대해 알아보겠다.

 

인덱싱에서 기본적으로

단일 값 추출 하는 방법이 있다.

array1 = np.arange(10)
print('array1:', array1)

value = array1[2]
print('value:', value)
print(type(value))

[output]

array1: [0 1 2 3 4 5 6 7 8 9]
value: 2
<class 'numpy.int32'>

예제에서 보듯이

1부터 9까지의 1차원 ndarray를 생성해주었고

그중에서 array1[2] 번째 데이터값 을 추출하였다.

 

인덱스는 0부터 시작하므로 array1[2] 는 

3번째 인덱스 위치의 데이터값을 의미한다.

 

인덱스에 마이너스 기호를 이용하면 

맨 뒤에서부터 데이터를 추출 할 수 있다.

array1[-1] 은 맨 뒤의 값,

array1[-2] 는 맨 뒤에서 두번째 값 을 의미한다.

따라서,

print('맨 뒤의 값:' ,array1[-1],
      '맨 뒤에서 두번째 값 :',array1[-2])

[output]

맨 뒤의 값: 9 맨 뒤에서 두번째 값 : 8

 

1 2 3 4 5 6 7 8 9
index=0 1 2 3 4 5 6 7 8
array1[0] array1[1] array1[2] array1[3] array1[4] array1[5] array1[6] array1[7] array1[8]
array1[-9] array1[-8] array1[-7] array1[-6] array1[-5] array1[-4] array1[-2] array1[-2] array1[-1]

array1

 

2차원 인덱싱에 대해서 알아보자.

1차원 ndarray를 2차원의 3 x 3 ndarray 로 변환 후

[row, col]을 이용해서 2차원 배열로 데이터를 추출 해보겠다.

 

array1d = np.arange(start = 1, stop = 10)
array2d = array1d.reshape(3,3)
print(array2d)

print('(row = 0, col=0) index 가리키는 값: ', array2d[0,0])
print('(row = 0, col=1) index 가리키는 값: ', array2d[0,1])
print('(row = 1, col=0) index 가리키는 값: ', array2d[1,0])
print('(row = 2, col=2) index 가리키는 값: ', array2d[2,2])

[output]

[[1 2 3]
 [4 5 6]
 [7 8 9]]
(row = 0, col=0) index 가리키는 값:  1
(row = 0, col=1) index 가리키는 값:  2
(row = 1, col=0) index 가리키는 값:  4
(row = 2, col=2) index 가리키는 값:  9
  axis 1
axis 0  (0,0)
1
(0,1)
2
(0,2)
3
(1,0)
4
(1,1)
5
(1,2)
6
(2,0)
7
(2,1)
8
(2,2)
9

위 표는 2차원의 3 x 3 array 객체이다.

axis0 은 로우 방향의 축을 의미하고

axis1 은 컬럼 방향의 축을 의미한다.

즉 [row = 0 , col = 1] 인덱싱은 [axis0 = 0, axis1 =1] 과 같은 의미이다.

( 3차원에서는 3개의 축을 가지므로 axis0 행, axis1 열, axis2 높이 를 가진다. )

 

Reference

1.https://www.w3schools.com/python/numpy/numpy_array_indexing.asp

 

NumPy Array Indexing

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

2. 파이썬 머신러닝 완벽가이드 위키북스 데이터 사이언스 시리즈

반응형

'Python' 카테고리의 다른 글

Numpy 슬라이싱 (slicing)  (0) 2022.01.05
python 으로 csv 파일 합치기  (0) 2022.01.04
Numpy.reshape ( -1 )  (0) 2022.01.02
Numpy.reshape  (0) 2021.12.28
Numpy.arange, zeros, ones  (0) 2021.12.26