개발(IT)/Python(파이썬)

파이썬(Python) 데이터처리 - 넘파이(NumPy)

isony 2024. 12. 1. 20:41
반응형

파이썬(Python) 데이터처리 - 넘파이(NumPy)

- 넘파이(numpy)를 사용하려면 먼저 넘파이(numpy)를 임모트(import)해야 합니다.

- import numpy를 써도 되지만 보통은 다음과 같이 import ~ as ~ 형식을 사용

import numpy as np

 

1. 배열 데이터 생성 - array()

arr_str = np.array(list_data)

- 리스트데이터(list_data)를 인수로 받아 넘파이(numpy)의 배열객체(arr_str)를 생성

 

(예제)

import numpy as np

list_data = [0, 1, 2, 3, 4, 5.0]
aa = np.array(list_data)
bb = np.array([[1,2,3],[4,5,6],[7,8,9]])
aa, bb

(결과)
(array([0., 1., 2., 3., 4., 5.]),
 array([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]))

 

2. 범위와 간격을 배열을 생성 - arange()

arr_str = np.arange([start,] stop[, step])

- start부터 시작해 stop전까지 step만큼 계속 더해 넘파이배열(arr_str)을 생성

 

(예제)

np.arange(0, 5, 0.5)


(결과)
array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])

 

 

3. 범위와 개수를 배열을 생성 - linspace()

arr_str = np.linspace(start, stop[, num])

- start부터 stop까지 num개 요소를 갖는 넘파이 배열(arr_str)을 생성
- 배열의 각요소 사이의 간격은 (stop - start) / (num - 1)

 

(예제)

np.linspace(0, np.pi, 20)


(결과)
array([0.        , 0.16534698, 0.33069396, 0.49604095, 0.66138793,
       0.82673491, 0.99208189, 1.15742887, 1.32277585, 1.48812284,
       1.65346982, 1.8188168 , 1.98416378, 2.14951076, 2.31485774,
       2.48020473, 2.64555171, 2.81089869, 2.97624567, 3.14159265])

 

 

4. 배열 데이터 선택

1) 1차원 배열

배열명[i]

- i는 배열의 위치로 0부터 시작합니다.
- i가 -1 이면 배열의 마지막번째 -2 이면 배열 마지막에서 2번째 가리킵니다.
- n개 배열의 마지막 위치는 n-1 이 됩니다.

 

(예제)

import numpy as np

aa = np.array([0, 10, 20, 30, 40, 50])
[aa[0], aa[3], aa[-1], aa[-3]]


(결과)
[0, 30, 50, 30]

 

2) 배열조건

배열명[condition]

- 배열에서 condition를 만족하는 조건 선택입니다.

 

(예제)

(예제1)
aa = np.array([0, 10, 20, 30, 40, 50])
aa[aa > 30]


(결과)
array([40, 50])


(예제2)
aa[(aa % 3) == 0 | (aa < 20)] 

(결과)
array([10, 30])

 

3) 배열의 슬라이싱(범위)

(형식1)
배열[start:end]

- start : 시작위치
- end : 끝위치 (end를 입력하지 않으면 배열의 마지막까지)
- 범위 : start ~ end -1


(형식2)
배열[start:end:step]

- start : 시작위치
- end : 끝위치 (end를 입력하지 않으면 배열의 마지막까지)
- step : 증가폭 (생락시 1)
- 범위 : start ~ end -1 에서 step마다 배열 반영
- start가 end보다 크면 step은 음수가 되며 역순으로 배열 반영

 

(예제)

(예제1)
import numpy as np

aa = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
aa[1:8:2]


(결과)
array([20, 40, 60, 80])



(예제2)
aa[:]

(결과)
array([ 10,  20,  30,  40,  50,  60,  70,  80,  90, 100])



(예제3)
aa[0:10:]

(결과)
array([ 10,  20,  30,  40,  50,  60,  70,  80,  90, 100])


(예제4)
aa[:5:]

(결과)
array([10, 20, 30, 40, 50])


(예제5)
aa[8:2:-2]

(결과)
array([90, 70, 50])
반응형