본문 바로가기
DEV

[Data Science] NumPy 라이브러리 활용하기(2)

by 올커 2022. 4. 5.

NumPy 라이브러리에서도

파이썬 리스트와 같이 인덱싱, 슬라이싱을 할 수 있다.

Numpy 라이브러리 활용


1-1. 인덱싱(1차원)

1) 하나의 요소 호출(숫자로 인덱싱) : array명[n]

2) 여러개 요소 호출(리스트로 인덱싱) : array명[[n1, n2, n3]]

 

1-2. 인덱싱(2차원)

1) x행 y열에 해당하는 요소 : a[x][y] = a[x, y]

 

2. 슬라이싱

1) array명[x:y] : x ~ y-1 인덱스까지 슬라이싱

2) array명[0:n] = array명[:n] : 처음부터 n-1인덱스까지 슬라이싱

3) array명[n:] : n인덱스부터 마지막 인덱스까지 슬라이싱

4) array명[x:y:z] : x ~ y-1 인덱스까지 z간격으로 슬라이싱

 

3. 데이터 type 확인

>> array명.dtype

결과) dtype('float64')

 

4. 배열(Array)의 shape(2차원) 확인

Shape는 배열의 행수(n), 열수(m)를 tuple형태로 나타낸다

>> array명.shape

결과) (n, m)

 

ex) 배열이 아래와 같을 경우 Shape는

3 4 2 1
5 7 2 1
2 4 3 4

행 수 : 3, 열 수 : 4 이므로

>> np.array(matrix, int).shape

결과) (3, 4)

 

5. 배열(Array)의 shape(3차원) 확인

3차원 배열의 경우

(x, y, z)로 결과가 나타나며,

x는 차원수, y는 행 수, z는 열 수 로 나타낸다.

>> np.array(tensor, int).shape

 

6. shape - ndim, size

- ndim : 차원 수

- size : 전체 data의 수

>> np.array(tensor, int).ndim

>> np.array(tensor, int).size

 

7. reshape

배열의 shape 크기 변경

ex) 

3 4 2 1
5 7 2 1

array01이 (2,4) 배열일 경우,

>> np.array(array01).reshape(8,)

결과) [3, 4, 2, 1, 5, 7, 2, 1]

 

8. flatten

다차원 array를 1차원 array로 변환

>> array02 = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]

>> np.array(array02).flatten()

결과) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

 

9. diag

대각행렬의 값을 추출

1 2 3
4 5 6
7 8 9

>> np.diag(array01) 

결과) array([1, 5, 9])

 

>> np.diag(array01, k=1)    *k : start index

결과) array([2, 6])

반응형

댓글