본문 바로가기

전체 글418

[Pandas] row, column 처리 재색인 Pandas는 reindex라는 함수를 통해 기존 index를 새롭게 재배치 할 수가 있다. '어?? 분명 Series 공부할 때, obj.index = ['a','b','c','d'] 이런식으로 index를 다르게 줬었는데.. 이건 왜 필요하지??' 분명 이전에 obj.index = ['a','b','c','d'] 이런 식으로 index 명칭을 변경했었다. 하지만 이건 재색인이라기 보다는 그냥단지 index의 명칭을 기존 명칭에서 ['a','b','c','d']로 바꾼 것 뿐이다. reindex에 대한 예제 코드를 본다면 위의 기능과 크게 다른 것임을 느끼게 될 것이다. reindex를 통해 index에 해당하는 값들이 재배치된 것을 확인할 수 있을 것이다. 또한 index에 해당하는 값이 없다.. 2015. 3. 16.
[Pandas] 자료구조 Pandas란? 데이터 분석, 데이터 처리 등을 쉽게 하기 위해 만들어진 python package이다.보다 안정적으로 대용량 데이터들을 쉽게 처리할 수 있다고도 알려져 있다. SeriesSeries는 value와 index의 형태를 지니는 Pandas의 자료 구조이다.아래 그림과 같이 [1,3,5,7]의 값을 가지는 리스트를 Series로 생성하게 되면 (1,3,5,7)이라는 value와 (0,1,2,3)이라는 index가생성되어 Series라는 형태의 자료 구조를 만든다. index는 사용자가 직접 생성할 수 있으며, value에 대한 접근은 index를 사용하여 접근한다.Series의 색인은 사용자가 변경하고 싶을 경우 obj.index 값을 변경함으로써 언제든지 변경할 수 있다. 또한 dictio.. 2015. 3. 15.
[NumPy] ndarray 데이터 처리 where NumPy에서는 where을 이용한 조건 결과 찾기가 가능한다. 가령 아래와 같은 배열집합이 있다고 가정하자. arr1 = np.array([1, 3, 5, 7, 9])arr2 = np.array([2, 4, 6, 8, 10])cond = np.array([True, False, True, True, False]) cond의 원소가 True일 때 arr1의 값을 찾고, False일때는 arr2의 값을 찾아야 한다고 하면 아마 아래와 같이 작성할 것이다. result = [(x if c else y) for x, y, c in zip(arr1, arr2, cond)] where 함수를 사용하면 더 간단하게 작성할 수 있다. result = numpy.where(cond, arr1, arr2) w.. 2015. 3. 14.
[Numpy] ndarray 내장 함수 ndarray에는 다양한 내장 함수가 존재한다. 함 수 설 명 비고 abs, fabs 절대값을 리턴. 복소수가 아닌 경우에는 빠른 연산을 위해 fabs를 이용한다. numpy.abs(arr) sqrt 제곱근(루트)을 계산함. numpy.sqrt(arr) square 제곱을 계산함. numpy.square(arr) Exp 지수를 계산함. numpy.Exp(arr) Log 로그를 계산함. numpy.Log(arr) sign 각 원소의 부호를 계산함. 양수 : 1, 음수 : -1 numpy.sign(arr) ceil 소수를 올림으로 계산함. numpy.ceil(arr) floor 소수를 버림으로 계산함. numpy.floor(arr) rint 소수를 반올림한다. type은 유지된다. numpy.rint(arr.. 2015. 3. 13.
[Numpy] ndarray 연산 ndarray 연산ndarray는 아래와 같은 방법으로 연산이 가능하다. ndarray에서의 연산은 for문 연산이 아니기 때문에 일괄처리가 가능하다. ndarray 슬라이싱ndarray도 python 문자열이나 list 처럼 슬라이싱이 가능하다.아래의 그림을 보면 0부터 9까지 저장되어 있는 1차원 배열 형태의 ndarray를 만들었고, 처음부터 5번째 까지만슬라이싱 하도록 되어 있다. 리스트 슬라이싱과의 중요한 차이점은 리스트의 경우에는 슬라이싱을 할 경우 데이터 복사가 이루어지지만 ndarray 슬라이싱의 경우는 원본 배열은 그대로 저장되어 있고 사용자에게 보여주는 뷰만 다른 형태로 보여주는것이기 때문에 데이터 복사가 이루어 지지 않는다. (데이터 베이스의 뷰 테이블과 비슷한 개념) 뷰 형태로 보여.. 2015. 3. 12.
우분투 3.13 커널을 3.16으로 업그레이드 하기 이 글은 amd64 기준으로 설명되어 있음. 1. 3.16 커널 패키지 다운로드 $> wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-headers-3.16.0-031600-generic_3.16.0-031600.201408031935_amd64.deb$> wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-headers-3.16.0-031600_3.16.0-031600.201408031935_all.deb$> wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-image-3.16.0.. 2015. 3. 11.
[NumPy] ndarray 기본 NumPy란? Numerical Python의 줄임 말로써 고성능의 수치 계산을 하기 위해 만들어진 python package이다.파이썬을 이용한 데이터 분석을 하기 위해서는 pandas 뿐만 아니라 numpy를 익혀야만 보다 호율적인 데이터 분석이가능하다. ndarrayNumPy에서 가장 강력한 무기로 칭송받고 있는 N차원의 배열 객체.ndarray는 기존 파이썬과는 다르게 오직 같은 종류의 데이터만을 배열에 담을 수 있다. ndarray의 생성NumPy의 array함수를 통해 쉽게 배열 형태로 만들수 있다. 또한 zeros, ones 함수를 통해 0행렬, 또는 모든 행렬 값이 1인 행렬을 만들 수 있다.empty 함수는 행렬 값이 초기화되지 않은 행렬을 생성한다. arange 함수를 통해 범위 내의 .. 2015. 3. 10.
[Python] ipython 사용하기 1. 탭 자동 완성 인터프리터에서 알파벳을 입력한 후 키를 누르면 알파벳과 일치하는 객체나 함수의 리스트들이 나열된다.당연히 어떤 객체의 매서드나 속성 뒤의 마침표를 입력 한 후 키도 동작한다. 키는 파일 경로를 보여줄 수 도 있는데, 파일 경로를 입력한 후 키를 누르면 입력한 문자열에 해당하는파일 경로를 보여준다. 2. 객체 정보 보기변수 이름 뒤에 "?"를 붙이면 그 객체에 대한 일반 정보를 볼 수 있다. 만약에 객체가 함수라면 정의되어 있는 문서를 출력해 주며, "??"를 사용하면 함수의 소스까지 보여줄 수 있다. 3. %run외부 스크립트 파일을 실행할 수 있다. In[4]: %run ipython_test_script.py 스크립트 파일에 정의된 모든 변수(import, 함수, 전역변수) 들은 .. 2015. 3. 9.
[Python] 함수형 프로그래밍 MAP map(함수, 리스트) MAP은 함수와 리스트를 인자로 받은 후, 리스트로부터 원소를 하나씩 꺼내서 함수에 적용한 후 그 결과를 새로운 리스트로리턴한다. def f(x): return x*x x = [1, 2, 3, 4, 5]y = map(f, x) 두 개 이상의 값을 map 함수에 집어넣을 때에는 아래와 같이 구현하면 된다. x = [1, 2, 3, 4, 5, 6]y = [6, 7, 8, 9, 10, 11] z = map(lambda a, b:a+b, x, y) FILTER filter(함수, 리스트) 리스트에 들어있는 원소들을 함수에 적용시켜서 그 결과가 참인 값들을 새로운 리스트로 리턴한다. filter(lambda x : x%2, [1,2,3,4,5,6]) REDUCE reduce(함수, .. 2015. 3. 4.