Programming(178)
-
[NumPy] ndarray 기본
NumPy란? Numerical Python의 줄임 말로써 고성능의 수치 계산을 하기 위해 만들어진 python package이다.파이썬을 이용한 데이터 분석을 하기 위해서는 pandas 뿐만 아니라 numpy를 익혀야만 보다 호율적인 데이터 분석이가능하다. ndarrayNumPy에서 가장 강력한 무기로 칭송받고 있는 N차원의 배열 객체.ndarray는 기존 파이썬과는 다르게 오직 같은 종류의 데이터만을 배열에 담을 수 있다. ndarray의 생성NumPy의 array함수를 통해 쉽게 배열 형태로 만들수 있다. 또한 zeros, ones 함수를 통해 0행렬, 또는 모든 행렬 값이 1인 행렬을 만들 수 있다.empty 함수는 행렬 값이 초기화되지 않은 행렬을 생성한다. arange 함수를 통해 범위 내의 ..
2015.03.10 -
[Python] ipython 사용하기
1. 탭 자동 완성 인터프리터에서 알파벳을 입력한 후 키를 누르면 알파벳과 일치하는 객체나 함수의 리스트들이 나열된다.당연히 어떤 객체의 매서드나 속성 뒤의 마침표를 입력 한 후 키도 동작한다. 키는 파일 경로를 보여줄 수 도 있는데, 파일 경로를 입력한 후 키를 누르면 입력한 문자열에 해당하는파일 경로를 보여준다. 2. 객체 정보 보기변수 이름 뒤에 "?"를 붙이면 그 객체에 대한 일반 정보를 볼 수 있다. 만약에 객체가 함수라면 정의되어 있는 문서를 출력해 주며, "??"를 사용하면 함수의 소스까지 보여줄 수 있다. 3. %run외부 스크립트 파일을 실행할 수 있다. In[4]: %run ipython_test_script.py 스크립트 파일에 정의된 모든 변수(import, 함수, 전역변수) 들은 ..
2015.03.09 -
[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.03.04 -
[Python] 내장 순차 자료형 함수
enumerate 파이썬에서 foreach를 사용할 경우 각 리스트의 값이 순차적으로 루프된다.만약에 foreach 문에 index를 추가로 확인하고 싶다면 count 변수를 추가로 선언하여 1씩 증가해야 하는 불편함이 있다. collection = [10, 9, 8, 7, 6, 5]index = 0for i in collection: index += 1 enumerate는 해당 collection의 값 뿐만 아니라 index도 함께 리턴한다. for index, value in enumerate(collection): # 처리 enumerate를 이용한 아래의 사용도 가능해진다. collection = ['apple', 'banana', 'pineapple']fruit_dict = dict((value..
2015.03.03 -
[Python] 튜플은 값이 바뀌지 않는다?
python에서 가장 많이 안쓰는 자료형이 튜플인 것 같다.튜플을 쓰는 용도는 거의 immutable한 데이터를 만들기 위할 때나 리턴 값을 여러개 받고 싶을 때 정도?(하지만 리턴도 왠만하면 dictionary "key:value" 형태로 좀더 명확하게 리턴을 표현해줄 때가 더 많음) 튜플의 가장 큰 특징이 한번 설정한 값은 바꿀수 없다 정도인데.. 튜플로 설정한 값도 때로는 바꿀 수가 있다..(읭??? 이게 먼말???) 바로 튜플안에 list가 존재하고 list 내의 아이템 값을 바꾸고자 하면 값이 바뀐다.왜냐하면 튜플이 가지고 있는 값은 list의 참조 값이지 list의 모든 값을 저장하고 있지는 않기 때문이다. 예를 들어 아래와 같은 예제가 가능하다. test_tuple = ('test', [1,..
2015.03.02 -
[Python] 덕타이핑?
파이썬은 duck typing을 지원하는 언어이다. Duck Typing이 무엇이냐 하면..만약에 어떤 새가 오리처럼 걷고 꽥꽥거리는 소리를 낸다면, 그 새를 오리라고 간주한다는 것이다. A라는 클래스와 B라는 클래스가 있고, 이것을 파라미터로 받는 함수가 존재한다고 가정하자.아래와 같은 형태가 될 것이다. public void TestFunction(Class param) 위 형태를 만족하려면 A클래스와 B클래스는 같은 부모로부터 상속을 받은 클래스이어야 한다.아무리 A클래스의 함수와 B클래스의 함수가 동일하고 해당하는 값이 동일하다고 하더라도, C++이나 JAVA에서는위 두 개의 클래스를 동일한 Type으로 간주하지 않는다.(그렇기 때문에 추상클래스라는게 있는거고.. 인터페이스를 고려해서 설계해야 하..
2015.03.01