-
파이썬 데이터사이언스 핸드북 2 장 - 비교연산, 논리연산으로 부울배열을 만들고 마스킹 연산하자.데이터 분석/NumPy 2020. 5. 31. 13:16
비교연산자와 논리연산자를 모른다면 더보기 클릭 비교연산자, 논리연산자 각각에 해당하는 ufunc 가 있다. 더보기 비교연산자 +, -, *, / 산술연산자 외에도 비교연산자도 활용할 수 있다. 물론 N차원 배열에 대해서도 비교연산자를 사용할 수 있다. 물론 N차원 배열에 대해서도 비교연산자를 사용할 수 있다. 논리 연산자 부울 연산자 여러 조건을 조합하고 싶다면, 파이썬의 비트 단위 논리 연산자 &, |, ^, ~ 를 사용할 수 있다. 표준 산술 연산자와 마찬가지로 NumPy 는 이 연산자를 일반적으로 부울 배열의 요소 단위로 동작하는 유니버셜 함수로 오버로딩한다. &/| 를 정수에 사용할 때 표현식은 그 요소의 비트에 대해 동작하므로 그 숫자를 구성하는 개별 비트 단위로 and 와 or 을 적용하는 것..
-
파이썬 데이터사이언스 핸드북 2 장 - 비교, 마스크, 부울 로직데이터 분석/NumPy 2020. 5. 31. 09:39
NumPy 배열 내의 값을 검사하고 조작하는 부울 마스크를 사용하는 법을 다룬다. 마스킹은 특정 기준에 따라 배열의 값을 추출하거나 수정, 계산, 조작할 때 사용한다. 특정 값을 모두 세거나 특정 임게치를 넘어서는 이상치를 모두 제거하려는 경우가 이에 해당한다. NumPy 에서 부울 마스킹은 종종 이러한 유형의 작업을 수행하기에 가장 효율적인 방법이다. 비교, 마스크, 부울로직 궁금한 정보를 조금씩 좁혀나가서 유의미한 데이터분석을 할 수 있다. 예제: 비온 날 세기 plt.hist(inches, 40) --- inches 배열에 대해서 40개로 범주화하여 히스토그램을 그린다. 40개 범주화했을 때 365일 중 245일이 0~ 0.04596457 첫번째 범주에 속하는 것을 알 수 있다. (비가 안온듯!) ..
-
파이썬 데이터사이언스 핸드북 2 장 - 배열 연산: 브로드캐스팅데이터 분석/NumPy 2020. 5. 31. 09:01
NumPy 는 Vectorization 벡터화된 연산으로 2가지 방식을 제공한다. - (Python 내장함수보다 빠른) NumPy 의 유니버셜 함수 Ufuncs 사용 [Ufuncs 포스트] - (피연산자를 동일한 형태로 맞추는) NumPy 의 브로드캐스팅 Broadcasting 사용 브로드캐스팅 소개 같은 크기의 배열에서 이항 연산은 배열의 요소 단위로 수행된다. 다른 크기의 배열에서 이항 연산은 브로드캐스팅 하여 같은 크기의 배열로 맞춘 후, 배열의 요소 단위로 연산한다. 브로드캐스팅 규칙 1. 두 배열의 차원 수가 다르면, 더 작은 수의 차원을 가진 배열 형상의 앞쪽(왼쪽) 을 1로 채운다. 2. 두 배열의 형상이 어떤 차원에서도 일치하지 않는다면, 해당 차원의 형상이 1인 배열이 다른 형상과 일치하..
-
파이썬 데이터사이언스 핸드북 2장 - Numpy 집계데이터 분석/NumPy 2020. 5. 24. 12:25
NumPy 집계가 빠르다!!! NumPy 배열에서 쓸 수 있는 빠른 내장 집계 함수 Python 내장함수 sum 과 NumPy 내장함수 sum 은 매우 유사하다. 그러나 NumPy 내장함수 sum 이 컴파일된 코드에서 실행되기 때문에 더 빠르다. min, max, sum 을 비롯한 다른 여러 NumPy 집계함수의 경우, 배열 객체 자체의 메서드를 사용하는 더 짧은 구문이 존재한다. NumPy 다차원 집계 NumPy 의 결과물은 Scalar 또는 NdArray 이다. 즉 Dimension 차원이란 개념을 가진다. 집계 연산의 보편적인 유형은 행이나 열을 기준으로 집계하는 것이다. 엑셀 스프레드시트를 떠올려보면 쉽다. 예를 들어 직원정보를 관리한다고 했을 때, 한 명의 직원에 대해서, 사번, 이름, 부서, ..
-
파이썬 데이터사이언스 핸드북 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 이 물밑에서 시스템 호출이 시간 측정을 방해하지 못하도록 몇몇 영리한 작업을 수행하기 때문이다. 예를 들면, 이 명령어는 시간 측정에 영향을 줄 수도 있는 미사용 파이썬 객체를 정리하는 가비지 컬렉션 작업을 못 하게 막..