뒤로
임세진
·
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
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.