Python

[SK T 아카데미] NumPy(넘파이) 기본

Tech Signal 2020. 12. 21. 20:39

SK T 아카데미의 넘파이 기본 강의를 수강하며 정리한 내용입니다. 이 강의를 꼭 들어주세요!

출처: tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=153#sec1

 

NumPy(넘파이) 기본 | T아카데미 온라인강의

1. Python 기본 자료형과 NumPy 자료형의 차이점에 대해 알아본다. 2. NumPy를 이용하 다차원 배열 생성 및 변경, 연산 방법 등에 대해 알아본다. 3. 브로드캐..

tacademy.skplanet.com

Numpy 에서 주로 사용되는 NdArray: N-dimensional Array. 다차원 어레이 

- 코어 부분이 C로 구현되어있어 python처럼 인터프리터를 거치지 않아 규모가 큰 다차원 배열 계산이 빠름

- 라이브러리에 구현되어있는 함수들을 활용해 짧고 간결한 코드 작성 가능

- 내부적으로 효율적인 메모리 사용이 가능하도록 구현되어있음

import numpy as np  

mathScoreNdarray = np.array(MathScoreNestedList)	#np.array를 생성

mathScoreNdarray 
#결과 값:
array([[11, 12, 13],
       [21, 22, 23],
       [31, 32, 33]])
       
#앞에 array가 붙어서 나온다.

mathScoreNdarray + 1
하면 값에 1씩 더해진다. # 브로드캐스팅

연산

np.sum(mathScoreNdarray)			# 전체 합
np.mean(mathScoreNdarray)			# 전체 평균
np.mean(mathScoreNdarray, axis=0)	# 열마다 평균
np.mean(mathScoreNdarray, axis=1)	# 행마다 평균

 

랜덤 2차원 배열 생성

sampleRand2Darray = np.random.rand(rows, cols)  # ndarray 선언
sampleRand2Dlist = sampleRand2Darray.tolist() 	# nested list 선언

'''
array([[0.6492122 , 0.34313981],
       [0.45049053, 0.81536615]])
'''

Numpy의 ndArray가 Python의 list보다 빠른 이유

: numpy는 타입을 명시해 값을 그대로 배열로 받아넣는다. (python 리스트는 결국 포인터의 배열로, 메모리 따로 있고 주소값을 저장하는 배열이다. 주소값이 가리키는 데이터는 흩어져있어 캐시 활용이 어렵다.)

(source:  https://image.slidesharecdn.com/numpy20160519-160516164831/95/numpy-8-638.jpg )