반응형

A.4.2 파이썬으로 사용자 정의 ufunc 작성하기

numpy.frompyfunc 는 입력과 출력에 대한 표준과 함께 파이썬 함수를 인자로 취한다.

frompyfunc 를 이용해서 생성한 함수는 항상 파이썬 객체가 담긴 배열을 반환하는데 이는 그다지 유용하지 못하다.

numpy.vectorize을 사용하면 반환 자료형을 지정할 수 있는 이점 이 있다.

 

A.5 구조화된 배열과 레코드 배열

ndarray 단일 데이터 저장소

 

A.5.1 중첩된 dtype과 다차원 필드

 

A.5.2 구조화된 배열을 써야 하는 이유

pandas DataFrame과 비교해보면 Numpy 의 구조화된 배열은 상대적으로 저수준의 도구다.

np.fromfile을 사용해서 데이터를 메모리로 읽어 들일 수 있다.

 

A.6 정렬에 관하여

.sort()

numpy.sort를 사용해서 정렬된 배열의 복사본을 생서할 수있다.

ndarray.sort와 똑같은 인자를 받는다.

 

A.6.1 간접 정렬 argsort와 lexsort

데이터 분석에서 하나 이상의 키를 기준으로 데이터를 정렬하는 것은 아주 흔한 일이다.

pandas

lexsort는 argsort와 유사하지만 다중 키 배열에 대해 간접 사전순 정렬을 수행한다.

 

A.6.2 대안 정렬 알고리즘

견고한 정렬 알고리즘은 동일한 원소의 상대적인 위치를 그대로 둔다.

mergesort

quicksort

heapsort

 

A.6.3 배열 일부만 정렬하기

numpy.partition과 np.argpartition

 

A.6.4 numpy.searchsorted: 정렬된 배열에서 원소 찾기

searchsorted는 정렬된 배열에서 이진 탐색을 수행해 새로운 값을 삽입할 떄 정렬된 상태를 계속 유지하기 위한 위치를 반환하는 메소드다.

 

A.7 Numba를 이용하여 빠른 NumPy함수 작성하기

Numba는 cpu, gpu또는 기타 하드웨어를 이용하여 Numpy와 유사한 데이터를 다루는 빠른 함수를 작성할 수 있도록 도와주는 오픈소스 프로젝트다.

 

import numba as nb

nb.jit()

 

@nb.jit

def mean_distance(x,y)

 

Numba를 이용해서 모든 파이썬 코드를 컴파일할 수는 없지만 순수 파이썬 코드의 많은 부분을 지원하며 산술 알고리즘을 작성할 경우 특히 유용하다.

반응형

' > python for Data Analysis' 카테고리의 다른 글

Apeendix-04  (0) 2021.03.09
Apeendix-03  (0) 2021.03.09
Apeendix  (0) 2021.03.06
14-2. 데이터 분석 예제 Apeendix A: 고급 Numpy  (0) 2021.03.02
14-1. 데이터 분석 예제  (0) 2021.03.01

+ Recent posts