데이터분석을 위해 데이터 입력 방법을 알려준다.

 

1. 어떤 특성의 데이터를 포함해야 하는가?

- 특성값이 예측할 때 알 수 있는 변수여야한다.

- 특성은 수치형 또는 문자형이어야한다.

- 목표변수와 관련있다고 생각되는 특성들만 입력하는 것이 좋다.

 

* 머신러닝의 정확도가 떨어지는 경우

- 상관 없는 변수라고 생각했지만 상관이 있는 변수를 제거하는 경우

- 관련있다고 생각하는 변수를 모두 넣어버려 잡음이 커지는 경우

- 목표변수와 관련이 있음을 이미 알고 그런 집합만 넣었을 때 예측에 도움되는 그밖의 변수들이 제거되는 경우

 

이런 문제의 해결 방법은

=> 목표 변수를 예측하는데 도움이 된다고 생각되는 모든 특성을 포함시켜 모델을 만들고 모델의 정확도가 충분하면 중단한다.

=> 그래도 정확도가 충분하지 않으면 목표와 관련성이 낮은 특성들까지 확장하여 모델을 제작하고 정확도를 평가한다. 충분하면 중단한다.

=> 아직도 충분치 않으면 그 상태에서 특성 선택 알고리즘을 사용해 가장 도움이 되는 부분집합을 선택한다. 

 

2. 훈련 데이터의 양은 어떻게 정하는가? 

=> 정확히 말하기 어렵지만 몇가지 요소를 고려해볼 수 있다.

 

- 문제의 복잡성: 입력특성과 목표변수의 관계가 단순선형인가 비선형인가

- 정확도를 위한 요구사항: 정확도가 높은 모델을 만들려고 할수록 많은 데이터가 필요하다.

- 특성 공간의 차원: 입력특성이 적으면 많은 것보다 적은 데이터가 필요하다.

 

원칙: 훈련집합이 클수록 평균적으로 모델이 정확해진다.

 

3. 훈련 집합이 충분히 대표성을 띄는가?

=> 시각화를 통해 대표성을 띄는지 검토해야 한다.

 

약한 관계 + 약한 관계 => 강력한 예측변수

 

로지스틱은 입력값과 출력값의 관계가 복잡하게 표현될때 제한될 수도 있다.

 

매개변수모델 , 비매개변수모델 ? 

 

매개변수모델은 예측값과 설명변수의 관계를 잘 알고 있을 때 사용하면 효율적이다. 

또 이러한 선형 알고리즘은 설명하기 쉽고 큰데이터셋을 다루기 유용하면서 작업속도가 더 빠른 모델이다.

비매개변수 머신러닝 알고리즘은 데이터에서 복잡한 경향과 구조를 자동으로 발견해낼 수 있는 더욱 유연한 모델이다.

 

데이터 처리: 결측치가 있다면 왜 결측치가 났는지 모르지만 결측치를 제거할 수 있어야하며, 최소한 오해의 소지가 있는 데이터에서 특정 알고리즘이 얼마나 잘 작동하는지 알아내야한다.

 

특정 알고리즘은 쓸데없는 특성을 알아서 제거하지만 대부분의 알고리즘이 그런 특성을 제거했을때 정확도가 더 높게 나온다. (그렇지만 귀중한 정보가 보기에 쓸데없어 보이는 특성으로 추출될 수 있다는 점도 명심해야한다.) 

 

feature engeneering (특성 공학): 수집된 데이터에서 값을 추출하고 실제로 모델을 구축하기 전에 모델의 특성을 추가하는 작업들

 

 

 

1. used to 사용법

be used to - v : ~ 하는데 사용됐다. 

used to : ~ 하곤했다

be used to ~ing : ~ 하는데 익숙해지다.

 

2. look at 사용법

쳐다보다

고찰하다 ex) chaelin looked at children's logical and emotional activities

 

3. better off -ing : ~ 하는게 낫겠다.

 

tourist attraction: 관광명소

moral: 윤리성

distraction: 오락 (머리를 식히는 놀이)

in person: 직접

imperative: 긴요한

even so/ nevertheless: 그럼에도 불구하고

 

'영어 > 한줄영어' 카테고리의 다른 글

22-02-08  (0) 2022.02.08
seem 동사  (0) 2019.12.26
기다리다 (wait/hold on/hang on)  (0) 2019.12.09
잘난체하는~  (0) 2019.12.05
Used to VS Be used to  (0) 2019.09.02

파이썬 날개달기

 

  1. 클래스 (class)

    1. 한가지 작동방식의 함수를 여러개 찍어낼 수 있도록 하는 것

      1. ex) 과자틀 -> 클래스, 과자 -> 객체

    2. 객체와 인스턴스의 차이

      1. 인스턴스: 클래스로 만든 객체

    3. 매서드 (method)

      1. 정의: 클래스 내에 있는 함수

      2. 정의할 때, 가장 앞에 self를 사용 -> self는 객체를 받음

        1. ex) class calculator: def add(self, a,b):

    4. 생성자 (constructor)

      1. 객체에 초깃값을 설정해야할 필요가 있을 때, 생성자를 구현하는 것이 안전한 방법 -> __init__(self, 필요 변수1, 필요 변수2,...):

    5. 클래스 상속

      1. 기존에 존재하는 클래스 기능을 상속받을 수 있음

      2. 방법: class 클래스이름(상속할 클래스):

      3. 사용하는 이유: 주로 기존 클래스에 기능을 추가하고 기존것을 해치지 않으려고 할 때

    6. 매서드 오버라이팅

      1. 부모가 갖는 매서드를 새로 작성하고 싶을 때

        1. ex) calss 새 클래스(부모매서드): 동일한 함수 이름: 작성

    7. 클래스 변수

      1. 클래스 변수는 객체들과 모두 이어져 있음

 

  1. 모듈

    1. 정의: 함수, 변수, 클래스를 모아놓은 파일

      1. 모듈 이름 = 파이썬 파일 이름

      2. 파이썬 라이브러리란? 파이썬을 다운받을 때 설치하는 모듈들을 의미

    2. 불러오기

      1. 기본:  import 모듈이름 (.py 제외하고)

        1. ex) import mod1

      2. 함수만 직접사용: from 모듈이름 import 함수1, 함수2, ….

        1. from mod1 import add -> add함수 바로 사용

        2. 모든함수를 불러오고 싶을 때, 함수 이름대신 -> *

    3. if __name__ = ‘__main__’

      1. 모듈안에 수행문을 돌리고 싶지 않을 때

    4. 클래스나 변수등을 포함한 모듈

      1. 만약 class가 사용하고 싶다면 -> import mod2; a = mod2.클래스 이름() 

      2. 만약 함수가 사용하고 싶다면 -> import mod2; a.함수(변수)

    5. 다른파일에서 모듈 불러오기

      1. 모듈을 저장한 디렉터리 사용하기

        1. sys를 사용: 파이썬 라이브러리가 설치되어 있는 디렉토리 확인

      2. python 환경변수 바꾸기

        1. set명령어를 사용해 python path환경변수에 mod2.py파일이 있는 디렉토리를 설정

 

  1. 패키지

    1. 정의: 파이썬 모듈과 디렉토리를 계층적으로 정리해주는 구조

    2. 불러오기

      1. import 패키지.모듈.

      2. from 패키지 import 모듈

      3. import 패키지.모듈 import 매서드

        1. 주의사항: import의 마지막은 언제나 모듈, not 매서드

    3. __init__.py함수: 해당 디렉토리가 패키지의 일부임을 알려주는 역할, 만약 패키지에 포함되는 디렉토리에 이 함수가 존재하지 않는다면 패키지로 인식하지 못함

        1. python 3.3부터는 없어도 인식, but 안전하게 하기 위해 사용 ^^

      1. 모듈을 *로 모두 불러오는 경우에 -> __init__.py에 __all__을 추가해야 함

    4. 다른 모듈의 함수를 특정 모듈의 함수에서 사용하고 싶을 때

      1. import 패키지.모듈; def 함수: 사용가능

 

  1. 예외처리

    1. 에러 종류

      1. FileNotFoundError: 없는 파일을 찾을 때 

      2. ZeroDivisionError: 0으로 무언가를 나눌 때

      3. IndexError: Index관련 에러가 날 때

    2. 오류 예외 처리 기법

      1. try,except문

        1. 기본 구조: try: 수행문; except 발생오류 as 변수: 수행문

          1. 설명: try 블록 중 오류가 발생되면 except 블록이 수행

        2. 여러개의 오류를 처리할 때

    3. try.. finally문

      1. 사용한 리소스를 종료할 때 사용

        1. 문법 try: 수행문; except 오류문1 as 변수: 수행문1; except 오류문2 as 변수: 수행문2

        2. 한꺼번에 처리할 때 문법: try: 수행문; except (오류문1, 오류문2) as 변수

    4. 오류 회피하기

      1. 문법: try: 수행문; except 오류문: pass

    5. 오류를 일부러 발생시키기

 

  1. 내장함수

    1. 사용

      1. abs(): 절대값 반환

      2. all(): 하나라도 False가 있으면 False/ any(): 하나라도 True가 있으면 True

      3. chr(): 아스키코드값을 넣으면 대응 문자 반환

        1. ord(): 반대를 수행

      4. dir(): 객체가 가지고 있는 변수나 함수를 반환

      5. divmod(): 몫과 나머지를 튜플형으로 반환

      6. enumerate(): 순서가 있는 리스트, 튜플, 문자열을 값으로 받아서 순서 index를 enumerate의 객체로 반환

      7. eval(): 실행 가능한 문자값을 실행하여 결과로 돌려줌

        1. ex) eval(‘1+3’) = int(3)

      8. hex(): 정수값을 받아서 16진수로 반환

      9. oct():정수를 8진수로 변환

    2. 자주사용

      1. id(): 객체의 고유 주소값 반환

      2. input(): 입력값을 받는 함수 -> 언제나 integer

      3. int(): 정수로 반환

      4. instance(함수이름, 클래스이름): 함수가 해당 클래스의 함수인지 여부 확인 -> T/F 값으로 반환

      5. len(): 입력값의 길이

      6. list(): 리스트로 변환 

      7. max()/min(): 입력값의 최대값/최솟값

      8. open(‘함수명’,’mode’): 함수 오픈

      9. pow(a,b): a의 b제곱을 반환

      10. range(시작, 마지막, delta): 범위값을 반복 가능한 객체로 만들어 반환

      11. round(): 반올림 함수

      12. sorted(): 정렬 함수

      13. str(): 문자화 함수

      14. sum(): 입력받은 모든 리스트나 튜플값을 합산하는 함수

      15. tuple(): tuple로 변환하는 함수

      16. type(): 자료형이 무엇인지 반환하는 함수

 

  1. 외장함수

    1. sys: 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈

      1. 강제로 스크립트 종료: sys.exit(), 프로그램 내에서 사용

      2. 자신이 만든 모듈 불러와서 사용: sys.path -> 파이썬 모듈이 저장된 위치를 나타냄

        1. sys.path.append(‘경로’): 사용하려는 모듈의 경로를 추가하여 사용 가능

    2. pickle: 객체의 형태를 그대로 유지하여 파일을 저장하고 불러올 수 있는 모듈

      1. 사용방법(쓰기)

        1. import pickle

        2. 원하는 파일 f =open(‘파일명’,’w’)

        3. data 작성 data = {1: ‘you’,2: ‘need’}

        4. pickle.dump(data,f)

        5. f.close()

      2. 사용방법(읽기)

        1. import pickle

        2. 원하는 파일 open ‘r’

        3. data = pickle.load(f)

        4. f.close()

    3. os: 환경변수나 디렉터리 파일등의 os자원을 제어할 수 있게 해주는 모듈

      1. 내 시스템에 환경변수 값을 알고 싶을 때: os.environ

      2. 디렉토리 위치 돌려받기: os.getcwd

      3. 시스템 명령어 호출하기: os.system(‘명령어’)

      4. 실행한 시스템의 명령어 결괏값 돌려받기: os.popen()

    4. shutil: 파일을 복사해주는 모듈

      1. 사용방법: shutil.copy(‘복사할파일명’,’새로만들어질파일명’)

    5. glob: 디렉토리에 있는 파일을 모두 리스트로 변환

      1. 사용방법: glob.glob(‘디렉토리 위치’)

    6. time

      1. time.time(): 1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간의 초단위를 반환

      2. tile.localtime(): time.time()이 돌려준 값을 연도, 월, 일, 시, 분,초 … 형태로 바꿔주는 함수

      3. time.asctime(): time.localtime에 의해서 반환된 튜플 형태의 값을 인수로 받아 날짜와 시간을 알기 쉬운 형태로 반환

      4. time.ctime(): 현재 시간을 반환

      5. time.strftime(‘출력포맷코드’,값)

      6. time.sleep(값): 값sec만큼의 텀을 두고 문장을 수행

        1. ex) for i in range(10): print(i); time.sleep(1) -> 1초마다 i값을 print 수행

      7. time.sleep(값): 값sec만큼의 텀을 두고 문장을 수행

    7. calendar: 파이썬에서 달력볼 수 있는 모듈

    8. random: 난수를 발생시키는 모듈

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
Python 프로그램 입출력하기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

프로그램 입출력

 

  1. 함수

    1. 구조와 사용법

      1. 구조: def 함수명(입력값): 수행문

        1. def는 함수를 만들때 사용하는 예약어

        2. 매개변수: 함수에 입력으로 전달 된 값을 받는 변수

        3. 인수: 함수를 호출할 때 전달하는 입력값

      2. 함수의 형태

        1. 일반적인 경우

          1. def 함수이름(매개변수): 수행문 return 결과값

        2. 입력값이 없는 경우

          1. def 함수(): return 결과값

          2. 사용법: 결과값을 받을 변수 = 함수()

        3. 결괏값이 없는 함수

          1. def 함수명(매개변수): 수행문

            1. return이 없으면 결과값이 아니다. print도 수행문의 일부일 뿐이다.

        4. 입력값도 결과값도 없는 함수

          1. 사용법: 함수이름()

      3. 매개변수 사용

        1. 매개변수를 지정해서 호출

          1. ex) result = add(a=3,b=7) <- 순서가 바뀌어도 됨

        2. 매개변수에 초깃값 미리 설정

          1. 함수를 만들때 초기값이 변하는 것이 아니면 매개변수에 초기값을 넣어서 생성

            1. ex) def say_myself(name, old, man=True): 수행문

            2. 초기값의 위치는 맨 마지막에 입력

      4. 입력값이 몇개인지 모를 때

        1. 사용법: def 함수이름 (*매개변수): 수행문

        2. 사용법2: def 함수이름(choice, *매개변수): 수행문

      5. 키워드 파라미터

    2. 특징

      1. 결과값은 늘 하나

        1. 만약 결과값은 언제나 하나여야하지만 2개를 입력하는 경우 -> 두 값이 하나로 뭉쳐지는 튜플로 변환되어 나옴, 에러 안남

        2. 만약 return을 두번 사용하면?

          1. return을 사용하는 순간 함수를 빠져나옴

      2. 함수안의 변수는 함수 안에서만 효력이 있음

        1. 함수 안에서 함수 밖의 변수를 변경하려면?

          1. return 사용

            1. return값을 다시 밖의 변수에 넣어주면 됨

          2. global 명령어 사용

            1. global 변수 선언하면 가능

    3. lambda

      1. def 대신에 간결한 함수를 만들 때

        1. ex) add= lambda 매개변수1,2,...: 매개변수를 이용한 표현식

  2. 사용자 입력과 출력

    1. 입력

      1. input()함수

        1. 사용: 사용자의 입력값을 변수에 입력하고 싶을 때 사용

          1. 입력된 값은 문자이다!

          2. ex) a = input()

        2. 프롬프트에 질문띄우고 입력값 받기: input(‘질문내용’)

          1. ex) old = input(‘how old are you?’

    2. 출력

      1. print 자세히 알기

        1. 클따옴표로 둘러싸인 문자열은 +연산과 동일함

        2. 문자열 띄어쓰기는 콤마(,)로 함

        3. 한줄에 결괏값 입력: end 사용

          1. print(출력값, end=’ ‘)

  3. 파일 읽고 쓰기

    1. 파일 쓰기

      1. open함수 이용: 파일객체 = open(‘파일명’,’파일 열기모드’)

        1. ex) f= open(‘example.txt’,’w’) f.close() -> 결과값으로 파일이 생성

          1. f.close()는 파일을 닫아주는 역할 -> 생략가능

        2. 디렉토리 설정가능: open(‘C:/doit/새파일.txt’,’w’) 

        3. 열기모드(r,w,a)

          1. r: 읽을때만 

          2. w: 파일을 쓸때

          3. a: 새로운내용 추가

      2. 주의: 파일을 쓰기모드로 다시 실행한 경우 기존의 내용이 모두 사라지고 새로운 파일이 생성

      3. 쓰기예제

        1. f = open(‘example.txt’,’w’); for i in range(1,11): data = ‘%d line \n’ %i; f.write(data); f.close()

    2. 파일 읽기

      1. readline() 함수: 파일의 한줄을 읽어옴

        1. readline을 쓰는 경우 무한루프 안에서 한줄씩 읽어오다가 더이상 읽을 라인이 없으면 break

          1. while True: line=f.readline(); if not line: break; print(line)

      2. readlines() 함수: 여러줄을 불러옴

        1. readlines() 함수로 전체를 불러와서 lines 객체로 넣고 for문을 사용하여 line을 한줄씩 읽음

      3. read 함수 이용

        1. data= f.read(); print(data)

    3. 파일에 새로운 내용 추가하기

      1. ‘w’를 사용하면 새로 작성이기 때문에 문제가 생김 -> ‘a’로 수정만 하자!

        1. ex) f = open(‘example.txt’,’a’)

    4. with문과 함께 사용하기

      1. close()를 안 사용해도 된다는 장점

      2. 사용법

        1. with open(‘example.txt’,’w’) as f:

        2. 이하의 블록을 넘어가면 종료

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

제어문

 

  1. if문

    1. 기본구조와 특징

      1. 구조 -> if 조건문: 수행문 else: 수행문

        1. 수행문 대신 pass사용하면 아무일도 수행하지 않고 지나감

      2. 특징

        1. 들여쓰기는 필수!

        2. if문 뒤에 콜론(:)으로 마무리

        3. 참과 거짓여부를 확인하는 것

          1. if 참: 수행문

    2. 연산자와 조건

      1. 비교연산자

        1. <,>,==,!=,<=,>=

        2. 비교연산자 후에 True, False값을 내보냄

      2. 이중조건

        1. and, or, not 사용 가능

      3. 값이 포함되어 있는지 조건

        1. in/ not in (리스트, 튜플, 문자열)

    3. 다양한 조건을 판별하는 elif

      1. 구조 -> if 조건문1: 수행문1 elif 조건문2: 수행문2 else:수행문3

        1. elif는 여러개가 들어가도 된다.

        2. 해석: 만일 조건문1이라면 수행문 1을 수행하고, 조건문 1은 아니지만 조건문2라면 수행문2를 수행, 마지막으로 두 조건문 다 해당없으면 수행문3 수행

    4. 조건부표현식

      1. ex) 참 수행문 조건 거짓수행문 -> message=’pass’ if score>=60 else message=’failure’

  2. while문

    1. 기본구조와 특징

      1. 구조 -> while 조건문: 수행문

        1. 조건문이 참일동안만 반복수행

      2. 중간에 빠져나가기

        1. break

      3. 맨 처음으로 돌아가기

        1. continue

      4. 무한루프 구조 -> while True:

  3. for문

    1. 기본구조와 특징

      1. 구조 -> for 변수 in (리스트, 튜플, 문자열): 수행문

        1. 변수가 두개씩 프린트 가능

          1. ex) a = [(1,2), (3,4), (5,6)]

          2. for (first, last) in a: print(first+liat)

          3. 리스트의 요소값이 튜플이기 때문에 각각의 요소가 자동으로 변수에 대입 

      2. 처음으로 돌아가기: continue

    2. for문과 함께 사용하는 range 함수

      1. 숫자 리스트를 자동으로 만들어주는 range함수

        1. 사용법: range(값) -> 0부터 값-1까지 숫자리스트 생성

    3. 리스트 내포 이용하기

      1. append대신에  사용하는 리스트 내포

        1. ex) a = [1,2,3,4]

        2. result = [num*3 for num in a]

        3. print(result)

        4. [3,6,9,12]

      2. if 조건도 추가 가능

        1. ex) result = [num*3 for num in a if num%2==0]

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

used to vs be used to

 

1. used to: ~ 하곤했다.

2. be used to: ~하기위해 사용됐다.

 

 

'영어 > 한줄영어' 카테고리의 다른 글

22-02-08  (0) 2022.02.08
seem 동사  (0) 2019.12.26
기다리다 (wait/hold on/hang on)  (0) 2019.12.09
잘난체하는~  (0) 2019.12.05
11/29/19 토플 영어공부  (0) 2019.11.29

==================================

출처: jump to python

==================================

 

파이썬이란?

 

  1. 파이썬은?

    1. 인터프리터 언어(한 줄씩 소스코드를 해석해서 그때그때 실행해 결과를 바로 확인할 수 있는 언어)이다.

  2. 특징

    1. 쉬운 언어

    2. 무료

    3. 속도가 빠르다. C는 더 빠름.(그런 이유로Python 함수들 중 C로 작성된 것들도 많음)

      1. ‘life is too short, you need python’

  3. 파이썬으로 가능한 일

    1. 시스템 유틸리티 제작

    2. GUI 프로그래밍

      1. Tkinter를 주로 사용

    3. C/C++과의 결합

    4. 웹 프로그래밍

    5. 수치 연산 프로그래밍

      1. 적합하지는 않지만 Numpy라는 모듈을 제공하여 빠르게 돌아감

    6. 데이터베이스 프로그래밍

      1. Sybase, Infomix, Oracle, MySQL, PostgreSQL등 데이터베이스에 접근하기 용이한 도구를 제공

      2. pickle은 자료 변형없이 그대로 파일을 저장하고 불러옴

    7. 데이터분석,  사물인터넷

      1. pandas 모듈 이용

  4. 훑어보기

    1. 파이썬은 대화형 인터프리터이다. 

    2. 파이썬은 대소문자를 구분한다.

    3. ‘…’은 아직 문장이 끝나지 않음을 의미한다.

 

데이터형

 

  1. 숫자형

    1. 종류

      1. 정수(integer): 0, 양수, 음수

      2. 실수형(floating-point): 소수점이 포함된 수

        1. ex) 3.5e10, 3.412 등

      3. 8진수나 16진수도 사용가능

    2. 사칙연산

      1. +,-,/,*

      2. 제곱: **

      3. 몫: //, 나머지: %

        1. 몫의 반환값은 정수값만 됨

          1. ex) 7/4=1.75지만 7//4=1

          2.  
  2. 문자열: 문자나 단어들의 집합

    1. 표현

      1. 문자열을 하나로 취급할 때: 작은따옴표로 감싸거나 큰따옴표로 감쌈

        1. ex) “python’s availability”혹은 ‘python”s availability’

      2. 작은따옴표나 큰따옴표를 문자열안에 포함시키고 싶을 때

        1. ex) \큰따옴표 or \작은따옴표 -> 컴퓨터는 문자열을 둘러싸는 기호가 아닌 문자 자체로 인식함

      3. 여러줄을 사용할 때:  \n을 사용해 줄을 바꾸거나 세개의 큰따옴표 혹은 작은따옴표로 감쌈

        1. ex) ‘life is too short, \n we should use python’

        2. ex) ‘’’life is too short, … we should use python’’’

    2. 이스케이프코드: 문자열에서 미리 지정해둔 문자코드

      1. \n: 줄바꿈, \t: 문자열 탭

      2. tip: 이스케이프코드보다 따옴표 세개사용이 깔끔하여 권장

    3. 문자열사칙연산(다른 언어에서 찾기 힘든 부분)

      1. 합치기(concatenation): + 사용

        1. ex) ‘abcd’ + ‘efg’ = ‘abcdefg’

      2. 곱하기: * 사용, 문자열을 두번 반복하라는 의미

        1. ex) ‘abcd’*2 = ‘abcdabcd’

      3. 문자열길이구하기: len()함수

    4. 인덱싱과 슬레이싱

      1. 인덱싱 방법

        1. 파이썬은 0부터 인덱싱해서 마지막은 n-1까지 인덱싱

        2. 인덱싱 중 ‘-’기호는 문자열을 거꾸로 카운트한다는 의미

        3. 공백문자도 문자이므로 인덱싱가능

        4. 문자열은 immutable 자료형이어서 인덱싱으로 문자변경이 불가

      2. 슬레이싱방법

        1. 문자열변수[n,m]: n번째부터 m-1번째까지

    5. 문자열 포매팅(formatting): 문자열에 삽입하기, 포맷코드 사용

      1. 숫자, 변수: %d, 부동소수: &f

        1. ex) ‘apple is %d’ %3

        2. ex) %0.4f% 3.4553443 = ‘3.4553’

        3. %10.4f% 3.4553443 = ‘      3.4553’

      2. 문자: %s, 다른 숫자형을 입력해도 자동으로 문자열로 변환

        1. ex) ‘apple is %s’ %’red’

      3. 두개 이상의 값

        1. ex) ‘apple is %s and %d’ %(‘red’,3)

      4. 포맷코드에 %를 함께 쓰고 싶을 때: %%를 사용 -> %를 문자로 인식

        1. ex) ‘error is %d%%’ %30 = ‘error is 30%’

      5. 정렬하기: 포맷코드 사이에 원하는 값을 입력하면 그만큼의 문자열을 생성하고 오른쪽 정렬을 함

        1. 음수: 왼쪽 정렬

        2. ex) ’%10s’ %’hi’ = ‘        hi’

      6. %와 %d를 함께 쓸 때는 %d%% 이렇게 사용

    6. 모든것을 통합하는 format함수

      1. 한개 값

        1. ex) ‘apple is {0}’.format(3) -> 숫자, 문자, 변수도 대입 가능

      2. 두개 이상의 값

        1. ex)’apple is {0} and {1}. format(‘red’,’10’)

      3. index 숫자 자리에 문자사용 가능

        1. ex) ‘apple is {0} and {color}’.format(‘1’,color=’red’)

      4. 정렬

        1. 왼쪽정렬: {0:<10}

        2. 오른쪽 정렬: {0:>10}

        3. 가운데 정렬: {0:^10}

        4. 공백에 원하는 문자를 넣고 싶을 때: {0:문자^10}

      5. 소수점 표현

        1. ‘{0:0.4f}’.format(3.234235) = ‘3.2342’

      6. f 문자열 포맷팅

        1. f ‘문자열’ 하면 외부 변수를 참조 가능

          1. ex) name = ‘홍길동’,  f’my name is {name}’ = ‘my name is 홍길동’

        2. f’{‘hi’:<10}

        3. f’{name:!<10}’

        4. f’{value:0.4f<10}’

    7. 문자열 내장함수: 문자열이 자체적으로 가지고 있는 함수

      1. 사용법: 문자열 뒤에 점을 찍고 함수를 사용하면 됨

        1. 문자 수 세기: 문자.count(‘수를 셀 문자’)

        2. 문자 찾기

          1. 문자.find(‘찾을문자’): index를 반환, 없다면 -1을 반환

          2. 문자.index(‘찾을 문자’): 없으면 error 반환

        3. 문자 삽입: 삽입할문자.join(‘문자열’)

          1. ex) ‘,’.join(‘abc’) = ‘a,b,c’

        4. 문자열 대문자,소문자화: 문자열.upper(): 대문자, 문자열.lower(): 소문자

        5. 공백지우기: 왼쪽지우기-> 문자열.lstrip(), 오른쪽 지우기 -> 문자열.rstrip, 둘다 지우기 -> 문자열.strip

        6. 문자 대체: 문자열.replace(‘대체당하는 문자’,’대체할문자’)

        7. 문자나누기: 문자열.split() -> 스페이스,엔터,줄바꿈을 기준으로 나눔, 원하는 문자에 따라 나누고 싶으면 함수에 문자를 입력하면 됨

  3. 리스트(list)

    1. 특징

      1. list는 대괄호([]) 안에 쉼표(,)로 요소를 구분 지음

      2. 어떠한 자료형도 포함할 수 있음 -> list안에 list도 가능함

      3. 인덱싱과 슬라이싱

        1. 인덱싱 방법

          1. 문자열과 동일

          2. list안에 list인덱싱: list[][]

            1. 삼중 list도 가능: list [][][]

        2. 슬라이싱방법

          1. 문자열과 동일

          2. list안에 list 슬라이싱: list[][]

    2. 연산

      1. list끼리 더하면 요소끼리가 아니라 전체를 더하는 것

      2. len(list): list의 길이

      3. 문자형이 다른것은 연산하면  type error가 뜸

    3. list 다루기

      1. 수정: list를 인덱싱하여 값을 교환

      2. 삭제: del a[]: 삭제할 값을 인덱싱하여 삭제

    4. 관련 함수들

      1. list.append(값): list에 값 추가, 다른 자료형도 추가 가능

      2. list.sort(): list 정렬

      3. list.index(값): 값에 해당하는 index반환

        1. 값이 없으면 value error를 냄

      4. list.insert(인덱스, 값): 원하는 인덱스 자리에 값을 넣음

      5. list.remove(값): 첫번째로 나오는 값을 지움

      6. list.pop(index): 인덱스 자리 값을 print하고 값을 지워서 반환

      7. list.count(값):요소 세기

      8. list.extend(list): list 확장하기

  4. 튜플(tuple)

    1. 특징: list와 비슷하지만 수정,삭제가 불가능

    2. 대괄호가 아닌 괄호를 사용해서 튜플생성

  5. 딕셔너리(dictionary): 연관배열 혹은 해시형

    1. 구성:  {key:value, key:value, …}

      1. key로 value를 찾아서 사용

      2. 요소삭제: del dic[1]

      3. value에는 어떤 자료형이 들어가도 상관없음

        1. ex) dic = {‘name’=’chaelin’,’hieght’=167,’score’= [1,2,3,4,5]}

    2. 주의사항: key는 동일한 것을 여러개 만들어 놓으면 하나만 인식

    3. 관련 함수

      1. 딕셔너리의 key를 list처럼 만들기: dictionary.keys()

        1. 하지만 이것은 list가 아닌 list형식의 객체 -> 해결법: list(dictionary.keys())

      2. 딕셔너리의 value를 list처럼 만들기: dictionary.values()

      3. key와 value 모두 지우기: dictionary.clear()

      4. key로 value 얻기: dictionary.get(‘key’)

      5. key가 딕셔너리안에 있는지 확인:  key in dictionary

  6. 집합 자료형(set)

    1. 사용법: 객체 = set() -> 비어있는 집합

      1. 안에 list를 넣으면 list숫자로 인식

      2. 안에 만약 list없이 문자열을 넣으면 문자 하나씩 인식

    2. 특징

      1. 중복을 허용하지 않음

      2.  순서가 없음

        1. indexing 불가능 -> list나 tuple로 변환하여 indexing해야함

    3. 사용

      1. 교집합: 집합1 & 집합2

        1. 추가 사용법: 집합1.intersection(집합2)

      2. 합집합: 집합 | 집합2

        1. 추가 사용법: 집합1.union(집합2)

      3. 차집합: 집합1 - 집합2

        1. 추가 사용법: 집합1.difference(집합2)

      4. 값 추가: 집합1.add(값)

      5. 여러값 추가: 집합1.update(list)

      6. 특정 값 제거: 집합1.remove(값)

  7. 불 자료형(boolean)

    1. 참과 거짓자료형

    2. 자료형에도 참과 거짓인 존재

      1. 리스트,튜플,집합은 비어있으면 거짓

      2. 숫자는 0만 거짓

      3. 중요한 예제! -> 사용 예시

        1. a = [1,2,3,4]

        2. while a: print(a.pop())

        3. while문은 참일동안 실행하는데 a가 빈 리스트가 되면 거짓이 되어서 종료 

    3. 참/거짓 여부 확인 함수: bool(데이터)

  8. 변수

    1. 생성

      1. 변수이름 = 변수를 저장할 값 <- C나 JAVA처럼 변수형 설정이 필요없음

      2. 변수가 생성되면서 메모리에 자동으로 위치가 할당됨

        1. 이를 확인하는 함수: id(변수)

    2. 변수 법칙

      1. 변수 복사: 예를 들면, a =[1,2,3]으로 변수를 생성하고 b=a로 하였을 때, a와 b는 다른 것인가? 동일 한 것

        1. id함수를 이용해 확인: id(a)=id(b) -> 의미: 같은 객체 [1,2,3]을 다른 이름 a,b가 다르게 가르키는 것

      2. 다른 것으로 인식시키고 싶을 때

        1. [:] 이용

          1. 복사를 b=a[:] <= 이렇게 사용하면 값을 지정하는 것

        2. copy 모듈

          1. from copy import copy 후에 b= copy(a)

    3. 입력방법

      1. 다수도 가능

        1. ex) a,b = b,a

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05

R  새로운 종류의 Plot 

  1. 상자그림(box plot)

    1. 사분위수: 데이터의 분포를 설명

      1. 1Q: 데이터 분포에서 25프로거나 이내의 데이터

      2. 2Q: 50프로

      3. 3Q: 75프로

    2. boxplot(데이터)

      1. boxplot을 객체로 주면 데이터 stats저장 가능

        1. ex) boxstat <- boxplot(iris$Sepal.Width, horizontal=T)

    3. outlier에 text입히기

      1. x값은 outlier값, y값은 1로 위치 설정

        1. ex) text(boxstat$out, rep(1,nrow(boxstat$out)), pos=1)

  2. 히스토그램(hist)

    1. hist(데이터)

      1. 구간: break라는 파라메터를 사용, 기본값 = ‘Sturges’, 이것은 막대의 너비를 [log_x(n)+1]로 지정 (세로값)

      2. 각 구간별 데이터 갯수: freq, 기본값= null. (가로값)

        1. freq=FALSE: 구간의 확률밀도가 그려짐, 확률밀도이므로 너비의 합이 1이 된다.

  3. 밀도 그림(density): 히스토그램의 분포를 살펴보기위해 가장 잘 알려진 함수

    1. density(데이터)

    2. rug() 함수: 실제데이터의 위치를 표시하는 함수

      1. rug(jitter(데이터)), 여기서 jitter는 데이터가 겹치지 않도록

  4. 막대 그림(barplot)

    1. barplot(값1,2,3,...)

  5. 파이 그래프 (pie)

    1. 패스~~ 다음에 하자

  6. 모자이크 플롯 (mosaicplot)

    1. 범주형 다변량 데이터를 표현

    2. mosaicplot(데이터, color = T)

      1. 만약 어떤 변수에 따른 모자이크  플롯만 그리고 싶다면 -> mosaicplot(~Class + Survived, data=Titanic, color = T)

  7. 산점도 행렬 (pairs)

    1. pairs(~ 산점도에 넣고싶은 column + column, …, col = c(‘색상1’,’색상2’,...)[범주형데이터명])

      1. ex) pairs(~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = iris, col=c(‘red’,’green’,’blue’)[iris$Species])

  8. 투시도와 등고선

    1. 패스~~

 

'R > 기초' 카테고리의 다른 글

R 데이터 plot 함수  (0) 2019.08.13
R 데이터 조작 II  (0) 2019.08.13
R 데이터 조작 I  (0) 2019.08.12
R에서 사용하는 제어문, 함수, 그에따른 연산  (0) 2019.08.12
R에서 사용하는 변수  (0) 2019.08.12

R  데이터 Plot 

 

  1. 기본이 되는 시각화 툴, graphics

    1. 사용전에 데이터 셋 가져오기: data(dataset이름) -> global enviroment에 저장

      1. data(mlbench) 불러오자, mlbench -> 데이터 데모 목적

      2. ? 데이터셋: 데이터셋이 어떻게 구성되어있는지 설명

    2. 기본 사용법

      1. plot(데이터,데이터)

  2. 그래프 내부를 예쁘게 만들기

    1.  축 이름 설정하기

      1. xlab, ylab=’이름’

    2. 그래프 이름

      1. main=’Ozone’

    3. 점 모양

      1. pch는 plotting characters

      2. pch= 숫자, 혹은 원하는 심볼 ‘x’

    4. 점 크기

      1. cex = 1 ’default’

    5. 점 색상

      1. colors() 함수를 사용해 적용가능 색상을 검색 가능

      2. col=’red’

    6. 좌표축 값 설정

      1. xlim, ylim = c(최솟값, 최댓값)

    7. jitter: 데이터 겹치지 않게 하지

      1. 같은 값 위에 여러값이 존재하면 이를 겹치지 않게 보기위해 함수를 사용

    8. 범례, legend()

      1. legend(‘위치’, legend=c(‘이름’,’이름’),pch=c(‘’,’’), cex=0.8, col=c(‘black’,’red’),bg=’grey’)

  3. 데이터 위에 선,점 그리고 도형 그리기

    1. plot을 선으로 하고 싶을 때, 혹은 ‘o’로 하고 싶을 때

      1. plot(cars, type =’1’ or ‘o’, cex= 0.5)

      2. 한 축의 값이 여러개인게 거슬린다?

        1. tapply로 x축에대해 y축 값으 평균낸다

        2. ex) x<-tapply(x축, y축, mean)

        3. plot(x, type=’o’)

    2. points(): 데이터 점을 덧 그리기

      1. plot()시행하고 points를 하면 원래 창에 점을 덧 그릴 수 있음

      2. 없는 데이터 위에 points()함수를 사용하고 싶다면

        1. type=’n’으로 해서 plot()을 사용

    3. lines(): 데이터 선을 덧 그리기

      1. points()와 비슷한 함수

      2. 비모수적 회귀분석

        1. lowess(데이터): 회귀분석 시행

        2. 그 외의 함수: loess(), ksmooth(), smooth.spline(),earth() 등

    4. abline(): 직선그리기

      1. a= 기울기, b= x계수/ 혹은 y= h, x=v도 가능

    5. curve(함수, 함수식, 범위): lines와 다르게 함수식이 맨 앞에 나와서 바로 적용 가능

    6. polygon()

      1. x<-c(x데이터, x데이터의 끝 값, rev(x 데이터), x데이터의 첫값)

      2. y<-c(y데이터, y데이터의 끝 값, rev(y 데이터), y데이터의 첫값)

      3. polygon(x,y)

    7. text()

      1. 우선 데이터를 plot()

      2. 그 데이터의 값을 순서대로 text표시 가능: text(x좌표, y좌표, pos=데이터 주변에 어디에 표시할지, 예를들면 1= 밑, 2=왼쪽 등)

  4. 행렬 데이터 그리기: matplot()/ matlines()/ matpoints()

    1. matplot(x데이터, 행렬y (내부에는 컬럼이 여러개 있음))

  5. 그래프상에 그려진 데이터 식별

    1. 데이터를 우선 그리기

      1. plot(cars)

    2. identify(그래프의 x데이터, 그래프의 y데이터) 식별해주기

      1. identify(cars$speed, cars$dist)

    3. 그래프위에 점을 찍으면 주변 데이터를 표시해줌

  6. 여러 데이터 그리기

    1. par사용: 여러 그래프 함수를 사용할 수 있도록 그래픽 인수를 설정하고 조회하는 함수

      1. 객체 <-par(mfrow=c(1,2))

      2. plot(), plot(): 플랏을 각각 한번씩 별개로 시행하고, par(opar) 수행

 

'R > 기초' 카테고리의 다른 글

R 새로운 종류의 Plot  (0) 2019.08.13
R 데이터 조작 II  (0) 2019.08.13
R 데이터 조작 I  (0) 2019.08.12
R에서 사용하는 제어문, 함수, 그에따른 연산  (0) 2019.08.12
R에서 사용하는 변수  (0) 2019.08.12

+ Recent posts