사이썬(Cython)

 : 컴퓨터의 실제 하드웨어에 가까울수록 처리해야 할 데이터의 타입을 아는 것이 중요하다. 컴퓨터 입장에서는 1 + 1과 1.00 + 1.00은 다르다. 전자는 정수들로 이뤄져 있지만, 후자는 부동소수점수이다. 정수를 계산할 때와 부동소수점수를 계산할 때, 계산이 CPU의 서로 다른 부분에서 이뤄진다. 파이썬에서는 사용하려는 데이터의 타입을 명시할 필요가 없이 파이썬 컴파일러가 타입을 유추한다. 하지만 데이터 타입 추론은 느린 연산이므로 파이썬의 속도를 떨어뜨리는 데에 한몫한다. 사이썬에서는 프로그램을 개발하는 프로그래머가 데이터 타입을 반드시 지정하도록 함으로써 이 문제를 해결했다. 컴파일러가 이 정보를 갖고 있으면 훨씬 빠르게 동작할 수 있다.


넘엑스퍼(Numexpr)

 : 인메모리 패키지에 NumPy가 있다면 빅데이터 패키지의 핵심에는 Numexpr가 있다. Numexpr는 NumPy의 숫자 표현식 평가이지만, 원래의 NumPy보다 몇 배나 빠르다. 표현식을 재작성하고 내부의 JIT(just-in-time) 컴파일러를 사용함으로써 높은 성능을 낸다.


넘바(Numba)

 : Numba는 코드를 실행 직전에 컴파일하는 JIT 컴파일 기법을 이용해 속도를 향상시킨다. 고수준 코드를 작성하면서도 C 코드처럼 빠른 속도를 얻을 수 있다. Numba의 사용법은 직관적이다.


비칼즈(Bcolz)

 : Bcolz는 NumPy를 사용할 때 일어날 수 있는 메모리 부족 문제를 극복하도록 돕는다. Bcolz는 최적화된 압축 형태의 배열에 저장해 작업할 수 있다. 데이터를 슬림하게 만들뿐 아니라 후면에서 Numexpr를 사용해 bcolz 배열을 가지고 계산을 수행할 때 필요한 계산을 줄인다.


블레이즈(Blaze)

 : '파이썬 다운 방식'으로 데이터베이스 후단부(back-end)를 다루고 싶다면 Blaze가 제격이다. 파이썬 코드를 SQL로 번역해줄 뿐만 아니라 관계형 데이터베이스 외에도 CSV나 스파크와 같은 것을 다룰 수도 있다. Blaze를 사용함으로써 여러 데이터베이스와 데이터 라이브러리를 일관적인 방식으로 다룰 수 있다. Blaze는 지금도 개발되고 있어서 모든 기능이 구현되지는 않았다.


테아노(Theano)

 : 테아노는 그래픽 처리 장치를 가지고 직접 작업할 수 있게 해주고 , 수식을 단순화하며, 훌륭한 JIT 컴파일러를 내장하고 있다. 그러한 바탕 위에서 유용한 고등 수학 개념인 텐서를 다루는 훌륭한 라이브러리다.


다스크(Dask)

 : Dask는 계산의 흐름을 최적화하고 효율적으로 수행시킨다. 계산을 분배할 수도 있다.



출처: 파이썬으로 배우는 데이터 과학 입문과 실습 소규모 데이터셋 처리부터 빅데이터 처리, 머신러닝, 시각화까지

출처: http://abc2080.tistory.com/entry/파이썬을-이용한-머신러닝-관련-패키지 [Another Windows]

출처: 파이썬으로 배우는 데이터 과학 입문과 실습 소규모 데이터셋 처리부터 빅데이터 처리, 머신러닝, 시각화까지


+ Recent posts