뒤로
임세진
임세진 ·

Numpy

사실, 이제는 python을 사용하는 분들에게는 numpy가 정말 많이 사용되어서 친숙하고 익숙하죠.

정말 어떻게 보면 별거 아니지만, 제가 처음 numpy를 접했을 적 추억을 회상하는 느낌으로 numpy가 python에서 왜 중요한지 정리해 볼게요.

제가 알기로는 numpy를 거쳐서 하는 연산의 속도는 python 속도가 아니라, C언어 코드에 근접하는 속도라고 알고 있어요. (제가 처음 python을 접할 당시에는 프로그램이 돌아가는 속도가 C언어로 짠 코드 >> python으로 짠 코드 였어요.)

따라서, 단순히 list 안에 들어있는 성분을 찾을 때도, python 기본 코드로 for loop을 돌리는 것보다, numpy의 indexing 기능들을 이용하는 것이 더 빠르죠. (지금도 그런지는 모르겠지만요)

그리고 기본적으로 행렬 연산도 numpy 연산이 더 간편하고 빨라서 어찌 보면 tensor의 기본적인 사용법이 numpy에서 시작했다고 해도 과언이 아닐 거에요.

제가 예전에 정리해본 많이 사용하는 numpy 기본 코드들이에요.

import numpy as np                   # numpy 모듈을 불러오기


a = [i for i in range(10)]           # 임의의 리스트 생성
a_np = np.array(a)                   # 생성한 리스트를 numpy 자료형으로 만듦
result = (a_np[1:]+a_np[:-1])/2.0    # numpy 연산을 수행
print(result)

a = [i for i in range(10)]
b = [10-i for i in range(10)]
a_np = np.array(a)
b_np = np.array(b)

result = a_np + b_np                 # numpy 연산을 수행
print(result)

a = [0.0 for _ in range(10)]
a_np = np.array(a)

for i in range(10):
	b = [j for j in range(10)]
	b_np = np.array(b)
	a += b                             # numpy 연산을 수행

print(a)

a = [i for i in range(10)]
a = np.array(a)

b = np.arange(10)

print(a, b)

a = [0.0 for _ in range(10)]
a = np.array(a)

b = np.zeros(10)

print(a, b)

a = np.arange(10)
idx = a==5
print(a[idx])

a = np.arange(10)
search = np.array([1, 2, 3])
mask= np.isin(search, a)
print(a[mask])
10X AI Club 그룹의 글
7

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.