NumPy 노트

“나는 천성적으로 암기력이 좋지 못해 기록하지 못한 것은 기억하지 못한다.”라는 생각을 (사실이지만) 기반으로 NumPy에 대한 내용을 단편적으로 정리합니다. NumPy는 직관적이지만 때론, 자주 그 함축적인 코드 안에 내포된 의미를 파악하지 못해 해매이는 경우가 허다했습니다. 물론 그 함축적인 의미는 기본과 기본들의 연결로 완성된 것이기에 기본적인 내용을 더 중요시하여 기록해 둡니다.

배열로 생성

원소의 접근

산술 연산

numpy.ndarray 타입 객체 간의 산술연산(+, -, *, /)는 원소별(element-wise product)입니다. +, -, *, / 산술연산에 대한 동일한 매서드는 각각 np.add, np.subtract, np.multiply, np.divide 입니다.

numpy.ndarray과 단일값(Scalar)에 대한 산술 연산은 보로드케스트(Boradcast) 처리됩니다.

브로드케스트

스칼라뿐만 아니라 shape가 다른 배열 간에도 브로드케스트로 처리됩니다.

행렬의 곱(내적) 연산

배열 요소의 합과 곱

True는 1로, False 0으로 변환되어 합산됩니다.

배열 요소 중 최대값의 인덱스 구하기

np.argmax(x)는 x 배열을 1차원으로 평면화된 배열에 대해 최대값을 갖는 인덱스를 반환하고, np.argmax(x, axis=0)는 첫번째 축인 row 방향(세로방향)으로 구성되는 요소 중 최대인 인덱스를 반환하며, y1 = np.argmax(x, axis=1)는 두번째 축인 column 방향(가로방향)으로 구성되는 요소 중 최대인 인덱스를 반환합니다.

배열 요소 중 임의로 몇 개만 뽑아내기

기계학습이나 신경망 훈련떼 방대한 입력 데이터 중 일부만을 뽑아내 활용해야 하는 경우가 있는데, 이를 위한 코드입니다. 아래는 총 9개의 요소 중 3개의 요소를 임의로 뽑아내 배열로 반환합니다.

배열 요소의 형변환

아래처럼 배열을 생성할 때 타입을 강제로 지정할 수도 있습니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다