-
파이썬 데이터사이언스 핸드북 2 장 - NumPy 배열연산 ufuncs 소개데이터 분석/NumPy 2020. 5. 17. 18:51
NumPy 는 데이터 배열을 사용하여 최적화된 연산을 위한 쉽고 유연한 인터페이스를 제공한다. NumPy 배열의 연산은 아주 빠르거나 아주 느릴 수 있다. 이 연산을 빠르게 만드는 핵심은 벡터화 (vectorized) 연산을 사용하는 것인데, 그것은 일반적으로 NumPy 의 유니버셜 함수 (universal functions, ufuncs) 를 통해 구현된다. 이번 절에서는 배열 요소에 대한 반복적인 계산을 더 효율적으로 수행하게 해주는 NumPy 의 ufuncs 의 필요성에 대해 생각해 보겠다. 그러고 나서 NumPy 패키지에서 사용할 수 있는 가장 보편적이면서 유용한 여러 산술 유니버설 함수를 소개한다. compute_reciprocals(big_array) 여기서 병목은 연산 자체에 있는 것이 아니..
-
파이썬 데이터사이언스 핸드북 2 장 - NumPy 배열의 기본 기능데이터 분석/NumPy 2020. 5. 16. 12:49
기본 배열 조작 기능 목차 배열 속성 지정: 배열의 크기, 모양, 메모리 소비량, 데이터 타입을 결정 배열 인덱싱: 개별 배열 요솟값을 가져오고 설정 배열 슬라이싱: 큰 배열 내에 있는 작은 하위 배열을 가져오고 설정 배열 재구조화: 해당 배열의 형상을 변경 배열 결합 및 분할: 여러 배열을 하나로 결합하고 하나의 배열을 여러 개로 분할 배열의 기본 속성들 ndim (차원의 개수), shape (각 차원의 크기), size (전체 배열의 크기) dtype (배열의 데이터 타입), 각 배열 요소의 크기 (itemsize), 배열의 전체 크기 (nbytes) 차원의 갯수는 [ ] 의 숫자이다. shape 속성으로 반환된 tuple 의 각 값은 tuple 인덱스 순서대로 각 차원이 가지고 있는 요소의 갯수이다..
-
파이썬 데이터사이언스 핸드북 2 장 - ndarray 소개데이터 분석/NumPy 2020. 5. 16. 09:24
NumPy 는 조밀한 데이터 버퍼에서 저장하고 처리하는 효과적인 이터페이스를 제공한다. NumPy 배열은 파이썬 내장타입인 list 와 비슷하지만 배열의 규모가 커질수록 데이터 저장 및 처리에 훨씬 더 효율적이다. NumPy 배열은 파이썬의 데이터 과학 도구로 구성된 전체 생태계의 핵심을 이루고 있기 때문에 관심있는 데이터 과학 측면이 무엇이든 상관없이 NumPy 를 효과적으로 사용하는 법을 배워야한다. numpy.ndarray ndarray docstrings ndarray(shape, dtype=float, buffer=None, offset=0, strides=None, order=None) ndarray definition An array object represents a multidimensi..
-
파이썬 데이터사이언스 핸드북 2장 - Numpy 소개데이터 분석/NumPy 2020. 5. 12. 11:43
3장과 함께 이번 장에서는 파이썬에서 인메모리 데이터를 효과적으로 적재하고 저장하고 가공하는 기법을 설명하겠다. 이 주제는 매우 광범위하다. 데이터세트는 광범위한 원천으로부터 문서나 이미지, 사운드 클립, 수치 측정값 등 거의 모든 것을 아우르는 매우 다양한 형식으로 들어올 수 있다. 이렇게 명백한 다양성에더 볼구하고 모든 데이터를 근본적으로 숫자 배열로 간주하는 것이 도움이 될 것이다. 숫자 배열을 효과적으로 저장하고 가공하는 것은 데이터 과학을 수행하는 절차에서 가장 근본적인 작업이다. 이제 파이썬이 이러한 숫자 배열을 다루기 위해 제공하는 전문 도구인 NumPy 패키지(2장)와 Pandas 패키지(3장) 을 살펴보겠다. NumPy 란? NumPy(보통 "넘파이"라고 발음한다)는 2005년에 Trav..
-
파이썬 데이터사이언스 핸드북 1장 - 코드 프로파일링 및 시간 측정데이터 분석/NumPy 2020. 5. 9. 13:33
특정 명령어나 일련의 명령어의 실행 시간을 확인하는 것이 유용하고, 때로는 멀티라인 프로세스를 면밀하게 분석하고 복잡한 일련의 작업에서 병목이 되는 지점을 찾는 것이 유용하다. IPython 은 이런 방식으로 코드의 실행 시간을 측정하고 프로파일링하는 다양한 기능을 제공한다. - %time : 단일 문장의 실행 시간 - %timeit : 단일 문장을 반복 실행해 더 정확하게 실행 시간을 측정 일반적으로 %time 으로 측정한 시간이 %timeit 으로 측정한 시간보다 길다. %timeit 이 물밑에서 시스템 호출이 시간 측정을 방해하지 못하도록 몇몇 영리한 작업을 수행하기 때문이다. 예를 들면, 이 명령어는 시간 측정에 영향을 줄 수도 있는 미사용 파이썬 객체를 정리하는 가비지 컬렉션 작업을 못 하게 막..
-
파이썬 데이터사이언스 핸드북 1장 - IPython 의 에러와 디버깅데이터 분석/NumPy 2020. 5. 5. 16:33
코드 개발과 데이터 분석은 항상 어느정도 시행착오가 필요하며, IPython 은 이 절차를 능률화하는 도구를 제공한다. 이번 포스트에서는 파이썬의 예외 보고를 제어하는 몇 가지 옵션을 간단히 다루고 코드의 에러를 디버깅하는 도구를 살펴본다. %xmode Plain, Context Verbose 인터프리터가 예외를 발견하면 에러 발생 원인에 대한 정보를 파이썬에서 접근할 수 있는 traceback 에서 확인할 수 있다. %xmode {Plain|Context|Verbose} %debug 역추적 내용을 확인하는 것으로 충분하지 않을 경우 디버깅 IPython 에서 디버깅에 가장 편리한 인터페이스 예외를 만난 뒤 이 명령어를 호출하면, 예외 발생 지점에 대화형 디버깅 프롬프트를 자동으로 연다. ipdb 프롬프..
-
파이썬 데이터사이언스 핸드북 1장 - IPython 의 꿀팁 명령어데이터 분석/NumPy 2020. 5. 5. 16:31
? 와 ?? 도움말 및 소스코드 확인 이 함수를 어떻게 호출할 수 있지? 이 함수는 어떤 인수와 옵션을 가지고 있을까? L.insert? Signature: L.insert(index, object, /) Docstring: Insert object before index. Type: builtin_function_or_method 이 파이썬 객체의 소스코드는 어떻게 생겼을까? def?? Signature: square(a) Source: def square(a): """a의 제곱을 반환""" return a**2 File: ~/Project/DS/ Type: function tab 탐색 및 자동완성 임포트한 이 패키지에는 무엇이 들어있을까? 이 객체는 어떤 속성이나 메서드를 가지고 있을까? %, %% ..
-
파이썬 데이터사이언스 핸드북 1장 - Jupyter notebook 실행데이터 분석/NumPy 2020. 5. 5. 14:55
파이썬 데이터사이언스 핸드북 1장. Iptyhon: 파이썬에 날개를 달자 IPython (Interactive Python) 은 훌륭한 파이썬 대화형 인터페이스일 뿐만 아니라 추가로 다수의 유용한 구문을 제공한다. 게다가 IPython은 개발, 협업, 공유는 물론이고, 데이터 과학 결과를 게시하는 데 유용한 브라우저 기반의 노트북을 제공하는 Jupyter 프로젝트와 밀접하게 연결돼 있다. 이번 장에서는 데이터 과학 실무에 유용한 IPython 기능을 배우고, 그 중 특히 파이썬의 표준 기능 이상을 제공하는 구문에 초점을 맞춰 살펴볼 것이다. 다음으로 데이터 과학용 코드를 생성하고 사용하는 일반적인 작업 속도를 높이는 몇 가지 유용한 매직 명령어에 대해 더 깊이 있게 알아볼 것이다. 마지막으로 데이터를 이..