Language 132

Python - getattr(), object의 속성(attribute) 값을 확인하는 함수

getattr >>> getattr(object, name[, default]) object에 존재하는 속성의 값을 가져온다. __builtin__ module에 포함된 function 이다. 예제에 앞서 getattr 예제를 위한 object를 다름과 같이 먼저 생성한다. >>> class sample: ... def __init__(self, x): ... self.x = x ... >>> >>> c = sample(1) >>> c.x 1 예제) 기존 속성의 값을 가져오는 경우 >>> getattr(c, 'x') 1 getattr을 사용하지 않고, c.x를 하여도 동일한 결과를 얻을 수 있다. >>> c.x 1 기존에 존재하지 않는 속성을 가져오려 하는 경우 (기본값이 없는 경우)>>> getattr..

Language/Python 2018.01.02

Python - setattr(), object의 속성(attribute) 값을 설정하는 함수

setattr >>> setattr(object, name, value) object에 존재하는 속성의 값을 바꾸거나, 새로운 속성을 생성하여 값을 부여한다. __builtin__ module에 포함된 function 이다. 예제에 앞서 setattr 예제를 위한 object를 다름과 같이 먼저 생성한다. >>> class sample: ... def __init__(self, x): ... self.x = x ... >>> >>> c = sample(1) >>> c.x 1 예제) 기존 속성의 값을 바꾸는 경우 >>> setattr(c,'x',2) >>> c.x 2 새로운 속성을 생성하여 값을 할당하는 경우>>> setattr(c,'y',5) >>> c.y 5 참고> setattr() - object의 ..

Language/Python 2018.01.02

Python - complex(), 복소수(complex)를 반환하는 클래스

complex >>> complex([real[,imag]]) real, imag 값을 전달하면 해당 복소수를 반환하거나 문자열 혹은 숫자를 복소수로 변환한다. __builtin__ module에 포함된 class 이다. 예제) real, imag 값을 정수(int)/실수(float)로 전달하는 경우 >>> complex(1,1) (1+1j) >>> complex(1.1,2.2) (1.1+2.2j) imag 값이 생략되는 경우>>> complex(1) (1+0j) 두 인자 모두 생략되는 경우 >>> complex() 0j 첫번째 인자를 문자열로 전달하는 경우 (두번째 인자는 없음) >>> complex("1+1j") (1+1j) complex는 일반 function이 아니고 class 이다. 따라서 해당..

Language/Python 2017.12.29

Python - cmp(), 전달받은 두 object를 비교하는 함수

cmp >>> cmp(x,y) 전달받은 두 object를 비교한 결과를 돌려준다. x y 일 경우 양수(1)을 돌려준다. __builtin__ module에 포함된 function 이다. 예) 전달받은 두 object가 정수(integer)일 경우 >> cmp(1,2) -1 >>> cmp(1,1) 0 >>> cmp(2,1) 1 전달받은 두 object가 실수(float)일 경우 >>> cmp(1.1,2.1) -1 >>> cmp(1.1,1.1) 0 >>> cmp(2.1,1.1) 1 전달받은 두 object가 문자(character)일 경우 >>> cmp('a','b') -1 >>> cmp('a','a') 0 >>> cmp('..

Language/Python 2017.12.29

Python - chr(), 전달받은 정수를 ASCII character로 변환하는 함수

chr >>> chr(i) 전달받은 정수(integer, 0 ~ 255)를 ASCII character로 변환한다. __builtin__ module에 포함된 function 이다. 예) 정수(integer, 0 ~ 255)를 넘겨주었을 경우 >>> chr(0) '\x00' >>> chr(10) '\n' >>> chr(97) 'a' 0 ~ 255 범위를 넘는 정수를 넘겨주었을 경우 >>> chr(300) Traceback (most recent call last): File "", line 1, in ValueError: chr() arg not in range(256) 실수(float)를 넘겨주었을 경우 >>> chr(1.7) Traceback (most recent call last): File ""..

Language/Python 2017.12.29

Python - bool(), 조건에 맞는 boolean 값을 반환하는 클래스

bool >>> bool(x) 전달한 조건 혹은 숫자를 기반으로 boolean(True/False) 값을 돌려준다. __builtin__ module에 포함된 class 로 class int의 subclass 이다. 예제) 조건(condition)을 입력하였을 경우 >>> bool(1>> bool(1>2) False 숫자(number)를 입력하였을 경우 >>> bool(1) True >>> bool(0) False bool은 일반 function이 아니고 class 이다. 따라서 해당 class에 포함된 다양한 method 사용이 가능하다. string 변환 method 사용의 예) >>> bool(0).__str__() 'False' >>> help(bool) Help on class bool in m..

Language/Python 2017.12.29

Python - len(), 넘겨진 값의 길이나 item의 수를 반환하는 함수

len >>> len(s) 전달받은 object의 길이나 가지고 있는 item의 수를 돌려준다. __builtin__ module에 포함된 function 이다. 예) 숫자를 넘겨주었을 경우 >>> a = 1 >>> len(a) Traceback (most recent call last): File "", line 1, in TypeError: object of type 'int' has no len() 문자열을 넘겨주었을 경우 >>> a = "abcde" >>> len(a) 5 리스트를 넘겨주었을 경우 >>> a = [1, 2, 3, 4] >>> len(a) 4 튜플을 넘겨주었을 경우 >>> a = (1, 2, 3, 4) >>> len(a) 4 딕셔너리를 넘겨주었을 경우 >>> a = {"a":1, "..

Language/Python 2017.12.28

Python - bin(), 10진수 숫자를 이진수(binary) 문자열로 바꾸는 함수

bin >>> bin(number) 전달받은 integer 혹은 long integer 자료형의 값을 이진수(binary) 문자열로 돌려준다. __builtin__ module에 포함된 function 이다. 예) integer를 이진수(binary) 문자열로 바꿀 경우 >>> bin(10) '0b1010' long integer를 이진수(binary) 문자열로 바꿀 경우 >>> bin(9223372036854775808) '0b1000000000000000000000000000000000000000000000000000000000000000' 참고> [integer 형과 long integer 형의 차이] >>> help(bin) Help on built-in function bin in module ..

Language/Python 2017.12.27

Python - any(), 반복 가능한 자료형 내 element 중 하나라도 True인지 확인하는 함수

any >>> any(iterableValue) 전달받은 자료형의 element 중 하나라도 True일 경우 True를 돌려준다. (만약 empty 값을 argument로 넘겨주었다면 False를 돌려준다.) __builtin__ module에 포함된 function 이다. 내부 구현 (from python official docs) def any(iterable): for element in iterable: if element: return True return False 예) iterable 자료형내 element가 모두 False일 경우 >>> a = [False,False,False] >>> any(a) False iterable 자료형내 element 중 True가 있을 경우 >>> a = [..

Language/Python 2017.12.27

Python - all(), 반복 가능한 자료형 내 element 전체가 True인지 확인하는 함수

all >>> all(iterableValue) 전달받은 자료형의 element가 모두 True일 경우 True를 돌려준다. (만약 empty 값을 argument로 넘겨주었다면 True를 돌려준다.) 하나라도 False가 있다면 False를 돌려준다. __builtin__ module에 포함된 function 이다. 내부 구현 (from python official docs) def all(iterable): for element in iterable: if not element: return False return True 예) iterable 자료형내 element가 모두 True일 경우 >>> a = [True,True,True] >>> all(a) True iterable 자료형내 element..

Language/Python 2017.12.26

Python - abs(), 절대값 구하는 함수

abs >>> abs(number) 전달한 숫자의 절대값을 돌려준다. plain integer, long integer, float point number 등의 숫자를 argument로 넘겨주면 절대값을 돌려준다. 만약 복소수를 argument로 넘겨주면 복소수의 크기(magnitude)를 결과로 돌려준다. __builtin__ module에 포함된 function 이다. 예제) 정수 >>> abs(-1) 1 실수 >>> abs(-1.75) 1.75 복소수 >>> abs(1+1j) 1.4142135623730951 >>> help(abs) Help on built-in function abs in module __builtin__: abs(...) abs(number) -> number Return th..

Language/Python 2017.12.26

[02-2] R언어 - 연산 (Arithmetic)

R언어에서의 연산은 여타 다른 언어의 연산과는 조금 다른 측면이 있다. 기본 연산연산자 기본 연산 R언어는 간단하게 변수에 정수값을 할당하여도 vector 형식의 object로 관리한다. > a = 1 > is.vector(a) [1] TRUE 가장 기본적인 object 형태라고 볼 수 있는데, R언어의 연산을 설명하기 위하여 vector 기반으로 설명하고자 한다. 간단한 예를 보면 다음과 같다. > n1 = c(1,2,3,4,5,6,7,8,9) > n2 = c(1,2,3,4,5,6,7,8,9) > n1 + n2 [1] 2 4 6 8 10 12 14 16 18 좀 더 복잡한 예를 보면 다음과 같다. > n1 = c(1,2,3,4,5,6,7,8,9) > n2 = c(1,2,3,4,5,6,7,8,9) > n..

Language/R 2017.12.06

[01-3] R언어 - 학습의 구성

[01-1] 에 언급하였듯이 통계학에 대한 기본 학습이 필요하다. 통계학에 대한 부분은 다루기가 어려워 아래와 같은 순서로 기본 문법과 주요 function 들에 대해서만 다루고자 한다. 01. R언어01-1. R이란 무엇인가?01-2. 설치 하기01-3. 학습의 구성 02. R언어 기본 정의 및 동작02-1. 할당 (Assignment) 02-2. 연산 (Arithmetic)02-3. Regular sequence 생성02-4. Missing value (누락값) 표현 03. R언어 object03-1. Object의 정의 및 종류03-2. type와 mode 차이의 이해03-3. vector03-4. matrix03-5. array03-6. factor03-7. list03-8. data frame0..

Language/R 2017.12.05

[03-5] R언어 - array 의 상세

R언어의 기본이 되는 object의 종류는 다음과 같다.. vectormatrixarrayfactorlistdata framefunction 본 글에서는 array의 사용에 대해 설명한다. array의 기본array에의 접근array의 계산 1. array의 기본 R언어에서 array는 일반적으로 알려져 있는 것과 같이 같은 mode(type)의 데이터가 연속적으로 나열되어 있는 구조를 의미한다.1차원, 2차원, 3차원 및 고차원으로 선언이 가능하다. array는 다음과 같이 선언한다. a a1 a1 [1] 1 2 3 4 5 6 7 8 9 10 11 12 2차원 array의 예) > a2 a2 [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 ..

Language/R 2017.11.24

[02-1] R언어 - Assignment (할당)

R언어에서 임의의 object에 특정 값을 할당하는 방법에는 여러 방법이 있다. '''='assign function 가장 기본적인 data structure 중 하나인 numeric vector를 예를 들어 할당 방법에 대해 알아보자 1. '' > a1 a1 [1] 1 3 5 7 9 > c(1,3,5,7,9) -> a2 > a2 [1] 1 3 5 7 9 많은 R언어 관련 예제들이 해당 방법을 사용해서 할당을 하고 있다. C언어에서 동일한 기호를 다른 목적으로 사용하는 만큼 헷갈리지 않도록 잘 인지가 필요하다. 2. '=' ''의 경우는 2개의 문자를 사용해야 한다. 이를 좀 더 줄이기 위해, 다른 언어에서의 할당과 마찬가지로 '='도 마찬가지로 사용 가능하다. > b1 = c(2,4,6,8,0) > b..

Language/R 2017.11.10

[03-1] R언어 - Object의 정의 및 종류

object의 종류vectormatrixarrayR언어에서 생성하고 다루는 개체를 objects라고 한다. 번역시 오역이 있을 수 있어 manual 상에 적힌 영문을 기술하면 다음과 같다. The entities that R creates and manipulates are known as objects. R언어에 있어 가장 기본이 되는 단위(?)로 해당 object는 변수(variables), 숫자 배열(arrays of numbers), 문자열(character strings), 함수(functions) 등으로 구분될 수 있다. 현재 R console 상 정의되어 있는 objects의 목록을 보려면 ls() 혹은 objects()를 입력하면 되는데 아래와 같이 변수, 숫자배열, 문자열, 함수 등을 선..

Language/R 2017.11.10

[03-8] R언어 - Data frame 의 상세

R언어에서 data를 다루는 방법에는 다음과 같은 방법이 있다. scalars vectors matricesdata frameslists 본 글에서는 data frames의 사용에 대해 설명한다. Data frames 기존 vector와 matrix는 같은 mode 의 element만으로 구성이 가능하다. 즉, numeric이면 numeric, character면 character, logical이면 logical로만 구성이 가능한 것이다. 하지만 데이터를 처리하다 보면 다양한 mode로 구성할 필요가 있는데 이 때 사용되는 것이 data frame이다. 기본적인 사용의 예) > fruit = data.frame(species=c("apple","banana","melon"), + count=c(3,7,..

Language/R 2017.11.09

[03-4] R언어 - matrix 의 상세

R언어의 기본이 되는 object의 종류는 다음과 같다.. vectormatrixarrayfactorlistdata framefunction 본 글에서는 matrix의 사용에 대해 설명한다. matrix의 기본matrix에의 접근자세한 argument 설명datanrowncolbyrow 1. matrix의 기본 Matrices를 한마디로 정의하면 table과 같은 2차원 vector라고 할 수 있다. 완전히 동일하지는 않지만 C언어의 2차원 배열과 유사하다. Matrices는 matrix function을 통해 다양한 방법으로 생성 가능하다. 먼저 matrix function의 definition은 아래와 같다. matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE..

Language/R 2017.11.08

[03-3] R언어 - vector 의 상세

R언어의 기본이 되는 object의 종류는 다음과 같다.. vectormatrixarrayfactorlistdata framefunction 본 글에서는 vector의 사용에 대해 설명한다. vector의 기본vector에의 접근vector에 데이터 입력순차적인 값 입력반복적인 값 입력vector를 이용한 계산vector의 element들에 대한 naming조건에 기반한 vector의 element 추출 1. vector의 기본 vector를 한마디로 정의하면 동일 objects의 집합 (같은 mode인 데이터의 1차원 나열)라고 할 수 있다. 완전히 똑같지는 않지만 C언어의 배열과 유사하고, 다른 matrix나 data frame을 만들 때 필요한 기본형이라고 보면 이해가 쉽다. > sample = c..

Language/R 2017.11.08

[03-2] R언어 - type와 mode 차이의 이해

R언어를 공부하면서 가장 헷갈렸던 부분 중에 하나가 아닐까 한다. object는 뭐고, mode는 또 뭐고, type은 또 무엇이란 말인가? 결론적으로 말하면 object는 R언어에서 다루는 하나의 entity(개체)이고, 이 object가 memory에 올라갈 때의 형식이 type 혹은 mode로 표현된다. 즉, 모든 object는 type과 mode 값을 가지고 있다. 그렇다면 type과 mode의 차이는 무엇인가? 먼저, type은 R언어 자체에서 사용하는 분류이다. R언어는 C언어를 이용해 코딩되었는데, 이 C언어 상에서 실제적으로 서로 구분하는 type을 나타낸다. 반면 mode는 "Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New ..

Language/R 2017.11.07

[04-1] R언어 - 관련 학습 문서 및 사이트

https://www.stat.berkeley.edu/~s133/all2011.pdf: UC 버클리에서 진행한 "Concepts in Computing with Data" 수업의 수업교재(강의 홈페이지 : https://www.stat.berkeley.edu/~s133/) https://cran.r-project.org/doc/contrib/Torfs+Brauer-Short-R-Intro.pdf: R언어 공식 홈페이지에서 제공하는 12 페이지짜리 짧은 가이드 문서 https://cran.r-project.org/doc/manuals/R-intro.pdf: R언어 공식 홈페이지에서 제공하는 105 페이지짜리 가이드 문서 R 관련 사이트 http://www.r-tutor.com/http://www.r-blo..

Language/R 2017.11.07

[01-2] R언어 - 설치하기

[R 언어란 무엇인가?] R 언어는 다양한 플랫폼에서 사용 가능하다. 해당 플랫폼으로 Linux, OS X, Windows 가 있다. 다운로드를 위해 [R 언어 홈페이지]를 방문하면 CRAN 이라는 용어를 접할 수 있다. CRAN(Comprehensive R Archive Network) is a network of ftp and web servers around the world that store identical, up-to-date, versions of code and documentation for R. Please use the CRAN mirror nearest to you to minimize network load. 해당 사이트에 정의된 CRAN은 위와 같다. R 언어를 위한 최신의 코..

Language/R 2017.11.07

[01-1] R언어 - R 이란 무엇인가?

요즘들어 R 이라는 언어가 주위에서 자주들려온다. 대체 기존 언어들과 비교해서 어떤 점이 다른 언어인가? 우선 R 언어를 언급하기 전에 S 언어에 대해 알아볼 필요가 있다. S 언어는 통계에 기반한 프로그래밍 언어이다. 이 언어의 목적은 "어떤 아이디어에 대해서 좀 더 빠르고 충실하게 소프트웨어로 구현 가능하게 "이다. S 언어는 2가지 버전이 있다. 무료로 배포되는 GNU S상용 버전인 Insightful의 S-PLUS 앞서 언급된 GNU S가 바로 우리가 알아보고자 하는 R 언어이다. 통계에 기반한 언어라는 것은 대체 무엇일까. 일반적으로 생각해 보면 통계라는 것은 다양한 데이터를 기반으로 이들 데이터에서 의미있는 어떤 것을 구해내는 것이다. 물론 많은 용도가 있겠지만 데이터 분석을 위한 언어가 주 ..

Language/R 2017.11.07

[04-5] Python - 파일 존재(isfile), 디렉토리 존재(isdir) 확인 방법

python 뿐만 아니라 코딩을 하다보면 특정 디렉토리의 존재 여부, 혹은 특정 파일의 존재여부를 확인해야 할 경우가 종종 존재한다. 이 때에는 해당 디렉토리, 파일 존재 여부를 확인하는 API를 사용해서 확인해야 한다. python에서는 os module내에 isdir, isfile API를 제공해서 해당 기능을 사용하도록 하고 있다. docs.python.org 에서의 정의 (isfile, isdir) isfile과 isdir 파일 모두 argument로 확인을 원하는 파일 혹은 디렉토리의 경로를 넣어주면 되고, 그 결과로 존재할 경우 True, 존재하지 않을 경우 False를 return하게 된다. 실 사용예는 다음과 같다. os.path.isdir() 의 사용 >>> import os >>> os..

Language/Python 2017.01.07

[01-1] Python - 코드(Code)의 실행

python을 배울 때 가장 먼저 화인해야 할 것 중 하나로 작성한 python code를 어떻게 실행시킬 것인가가 있다. 언어를 배울때 가장 중요한 것이 직접 실행해보고 그 결과를 눈으로 직접 보는 것이기 때문이다. python으로 작성한 code를 실행하는 방법은 몇가지가 있다. 1. python interpreter에서 직접 실행하기 2. .py 파일로 생성해서 python 인자로 넣어 실행하기 3. .py 파일을 바로 실행하기 하나씩 알아보기로 하자. 1. python interpreter에서 직접 실행하기 가장 기본적인 코드 실행 방법이다. python@Test:~$ python Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linu..

Language/Python 2017.01.06

[03-3] Python - while (반복문, Loops)

while은 for과 마찬가지로 조건이 맞을 경우 특정 문장을 반복해서 실행하는 문법이다. while 의 기본 문법>>> while 조건문: ... 실행문(Statements) ... while 의 다양한 사용 방법 1) while의 기본적인 사용 방법 >>> x = 10 >>> while x > 0: ... print "In while loop : %d" %x ... x -= 1 ... In while loop : 10 In while loop : 9 In while loop : 8 In while loop : 7 In while loop : 6 In while loop : 5 In while loop : 4 In while loop : 3 In while loop : 2 In while loop : ..

Language/Python 2017.01.05

[04-4] Python - pip(python package manager)의 설치 및 사용법

Python을 사용하다보면 pip를 통한 python 관련 package 설치를 볼 때가 종종 있다. Pip Installs Packages 혹은 Pip Installs Python 의 줄임말로 알려진 이 python package manager는 특히 python관련 library 를 설치할 때 유용하게 사용된다. Python 2.7.9 포함한 이후 버전, Python 3.4 포함한 이후 버전에서는 기본적으로 포함되어 있어 별도로 설치해 줄 필요가 없지만 이전 버전이라면 별도의 설치가 필요하다. - pip의 설치 For Ubuntu user1. python-pip package를 설치한다. # apt-get install python-pip For other system user 1. 설치 파일(get..

Language/Python 2017.01.02

[04-3] Python - Timezone 변경하기

개인적으로 사용하고 있는 서버의 System time은 UTC(세계표준시간)로 설정되어 있다. KST로 설정하면 별다른 코드없이 바로 해당 시간 사용이 가능하겠지만 KST보다는 UTC로 운영하고 있다. 하지만 종종 코드상에서 KST 시간이 필요할 경우가 있는데 Python에서 이때는 어떻게 코드를 작성해야 할까? 기본 datetime 모듈에는 해당 기능이 들어 있지 않다. 따라서 별도의 python library를 설치해주어야만 한다. timezone 변경을 위해서는 pytz 이라는 이름의 python library가 필요한데 별도로 설치가 필요하다. 일반적으로 pip 라는 python package manager를 통해 python library를 설치하는데 pytz 또한 pip를 통해 설치가 필요하다..

Language/Python 2017.01.02

[02-7] Python - 집합 (세트, Sets)

수학에 집합에 있듯이, python에도 집합이 있다. 수학 집합의 특징과 마찬가지로 python의 집합도 중복을 허용하지 않는다는 특징이 있다. 집합의 정의 방법 - 1 먼저 list에 사과 2개, 바나나 1개, 오렌지 1개, 수박 1개를 담고, 이 list를 set()로 변환하면 중복은 제거되고 사과, 바나나, 오렌지, 수박이 하나씩 담긴 집합이 생성되게 된다. 결과에서 보면 알겠지만 순서로 정렬되어 있지는 않다. 방법 - 2 list 를 set()을 통해 집합으로 변환하는 방법도 있지만 중괄호 { } 를 이용해서 바로 set을 만드는 방법도 있다. 하나 유의해야 할 점은 중괄호 { } 가 dictionary에서도 사용된다는 점이다. key:value를 포함하지 않고, 하나의 값들의 연속으로 표현된다면..

Language/Python 2016.12.31

[02-6] Python - 딕셔너리 (Dictionary)

딕셔너리(Dictionary)는 한마디로 정의하자면 key와 value로 정의되는 구조체이다. 예를 들어 아래와 같은 문장을 딕셔너리 형태의 자료형으로 표현해 이해해 보도록 하자. 과일이 사과가 한개, 바나나는 두개, 수박은 3개가 있다.fruit = {'apple' : 1, 'banana' : 2, 'watermelon' : 3} 사과가 몇개있는지 알아보려면print fruit['apple'] 바나나가 몇개있는지 알아보려면print fruit['banana'] 수박이 몇개있는지 알아보려면print fruit['watermelon'] 을 해보면 된다. 기존 일반적인 배열을 사용할 때 보다 좀 더 직관적으로 코딩이 가능하다. {}empty dictionary 는 위와 같이 중괄호를 감싸서 표현한다. {'a..

Language/Python 2016.12.31