본문 바로가기

인공지능(AI)/코드잇_데이터 사이언스 입문

[데이터 사이언스 시작하기] Numpy

- Numpy는 numerical python의 줄임말압니다. 즉, 숫자와 관련된 파이썬 도구로 생각하면 됩니다.

 

- numpy에서는 numpy 배열(numpy array)이라는 python list와 비슷한 자료형을 제공해 줍니다. 이때, ndarray는 n dimensional array를 뜻합니다.

 

array1 = numpy.array( [1,2,3,4] )
array2 = numpy.array( [1,2,3,4] , [5,6,7,8] )

type(array1) # numpy.ndarray
type(array2) # numpy.ndarray

array1.shape # (4, )
array2.shape # (2, 4)

array1.size # 4
array2.size # 8

 

- numpy array를 만드는 다양한 방법

array1 = numpy.full(6,7) # [7 7 7 7 7 7]

array1 = numpy.full(6,0) # [0 0 0 0 0 0]
array2 = numpy.zeros(6, dtype=int) # [0 0 0 0 0 0]

array1 = numpy.full(6,1) # [1 1 1 1 1 1]
array2 = numpy.ones(6, dtype=int) #[1 1 1 1 1 1]

array1 = numpy.random.random(6) #[0.42214929 0.45275673 0.57978413 0.61417065 0.39448558 0.03347601]

array1 = numpy.arange(6) #[0 1 2 3 4 5]
array1 = numpy.arange(2,7) #[2 3 4 5 6]
array1 = numpy.arange(3,17,3) #[3 6 9 12 15]

 

- import numpy가 아니라 import numpy as np로 하여, numpy에 alias를 붙여서, 이를 사용할 수 있습니다.

 

- numpy 배열에서 python 리스트와 같이 인덱싱과 슬라이싱이 가능합니다.

array1 = np.array( [2,3,5,7,11,13,17,19,23,29,31] )

array1[2] # 5
array1[-2] # 29

array1[ [1,3,4] ] # array([3,7,11])

array2 = np.array([2,1,3])
array1[array2] # array([5,3,7])

array1[2:7]
array1[0:7]
array1[:7]
array1[2:]
array1[2:11:3]

 

- numpy 기본연산(반복문 사용을 할 필요가 없어집니다)

array1 = np.arange(4) # array([0,1,2,3])
array2 = np.arnage(10,14) # array([10,11,12,13])

array1 * 2 # array([0,2,4,6])
array1 ** 2 # array([0,1,4,9])

array1 + array2 # array([10,12,14,16])
array1 * array2 # array([0,11,24,39])

 

- numpy boolean 연산

array1 = np.array([2,3,5,7])

array1 > 4 # array([False, False, True, True])
array1 % 2 == 0 # array([True, False, False, False])

booleans = np.array([True, True, False, True])
np.where(booleans) # (array([0,1,3]), )

filter = np.where(array1 > 4)
filter # (array([2,3]), )
array1[filter] # array([5,7])

 

- numpy array와 python list는 비슷한 점이 정말 많습니다. 하지만 분명한 차이점이 있습니다.

 

 

- numpy는 문법이 간단한 측면도 있지만, 성능적으로도 효율적입니다. 이는 값들이 저장되는 방식의 차이 때문인데 numpy에서는 같은 자료형끼리만 들어갈 수 있기 때문에 효율적으로 계산할 수 있습니다.

 

 

- numpy 라이브러리는 기본적인 통계 기능도 제공합니다.

array1 = np.array([14, 6, 13, 21, 23, 31, 9, 5])

print(array1.max()) # 최댓값
print(array1.min()) # 최솟값
print(array1.mean()) # 평균값
print(np.median(array1)) # 중앙값
print(array1.std()) # 표준 편차
print(array1.var()) # 분산