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개의 요소를 임의로 뽑아내 배열로 반환합니다.

배열 요소의 형변환

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

웹 GIS 솔루션, NexGen 소개

웹 GIS 솔루션, NexGen은 GS인증 1등급 제품인 GIS 미들웨어 서버 GeoService-Xr과 오픈소스로 GitHub에 공개된 웹 클라이언트 엔진 FingerEyes-Xr로 개발되었습니다.

NexGen은 GIS 솔루션으로써 갖춰야할 기본적인 기능을 기반으로 사용자가 원한는 공간 데이터를 추가하여, 이 데이터와 관련된 기능을 커스마이징을 통해 추가할 수 있는 솔루션입니다. NexGen은 다음과 같은 기능으로 구성되어져 있습니다.

위의 기능은 NexGen에서 기본적으로 제공되는 기능으로써, 범용적으로 활용할 수 있는 새로운 기능을 연구하여 지속적으로 추가되고 있습니다. 넥스젠(NexGen)은 긍정적인 평가를 받는 최신 기술을 활용하고 사용자의 니즈를 기반으로 지속적으로 발전하는 것을 목표로 하기 때문입니다.

위의 다이어그램 중 스타 쿼리 기능은 하나의 매우 심플한 UI를 통해 위치와 관련된 모든 것들을 검색할 수 있는 기능으로 아래의 글을 통해 좀더 자세히 살펴보실 수 있습니다.

넥스젠(NexGen)의 스타쿼리(* Query) 기능

또한 공간 데이터 편집은 웹 환경에서 공간 데이터와 속성 데이터를 사용자가 바로 편집할 수 있으며, 편집 이력에 대한 Undo/Redo 기능과 스냅핑을 편집을 위한 편의 기능으로써 제공하는데, 아래의 글을 통해 좀더 자세히 살펴볼 수 있습니다.

넥스젠(NexGen)의 공간 데이터 편집 기능

그리고 3차원 지형 가시화는 2차원 형태의 지도를 사용하다가 원하는 지역을 3차원으로 가시화하여 살펴볼 수 있는 기능으로, 아래의 글을 통해 좀더 자세한 내용을 살펴보실 수 있습니다.

NexGen에서 지형에 대한 3차원 시각화 기능

또한 맵 커뮤니케이터 기능은 NexGen을 통해 지도 기반으로 사용자 간의 의사소통이 가능하고 상호간의 업무 공유가 가능한 기능입니다. 이와 관련된 자세한 내용은 다음 글을 통해 설펴보실 수 있습니다.

맵을 이용한 정보 공유, 맵 커뮤니케이터 기능 소개

이 외에 이 글에서 언급하지 못한 다른 기능들은 이 사이트의 검색을 통해 내용을 파악하실 수 있습니다.