728x90

IT/언어 133

[python] 머신러닝을 위한 Python(4)

1. Case Study - News Categorization ​지금까지 배운 List Comprehension, Data Structure(Collections), Pythonic Code 작성법 등을 기반으로 다른 패키지 사용 없이 Python만으로 어떠한 뉴스와 비슷한 뉴스를 찾아내도록 코드를 작성해보자. ​ 1) 문자를 컴퓨터에게 알려주기 (1) 이진수만 이해하는 컴퓨터는 문자 자체를 인식할 수 없으므로 문자를 숫자로 변형시켜줘야한다. (2) 숫자로 '비슷함'을 표현한다는 것은 '가까움'을 표현하는 것이다. 수학적으로 좌표 평면상에 위치한 가장 가까운 두 점은 유사하다고 할 수 있다. 그래프 상에 위치한 두 점 사이의 거리는 피타고라스 정의로 구할 수 있다. 정리하면 숫자를 (좌표 평면상에 표현..

IT/언어 2020.06.04

[python] 머신러닝을 위한 Python(3)

1. Data Structure - Collections ​- List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조(모듈) - 편의성, 실행 효율 등을 사용자에게 제공함 - 아래의 모듈이 존재함 from collections import deque from collections import Counter from collections import OrderedDict from collections import defaultdict from collections import namedtuple 1) deque - Stack과 Queue를 지원하는 모듈 - List에 비해 효율적인 자료 저장 방식을 지원 - 효율적 메모리 구조로 처리 속도 향상 - reverse,rotate q..

IT/언어 2020.06.03

[python] 머신러닝을 위한 Python(2)

1. Pythonic Code - Enumerate & Zip ​ 1) Enumerate List의 element를 추출할 때 인덱스도 함께 추출하는 방법 # list에 있는 index 값을 unpacking ; i에는 index번호가, v에는 list의 요소가 대입됨 for i, v in enumerate(['tic', 'tac', 'toc']): print(i,v) >> 0 tic 1 tac 2 toc # 응용 (1) : list의 index와 값을 unpacking하여 list로 저장 mylist = ["a", "b", "c", "d"] newlist = list(enumerate(mylist)) print(newlist) >> [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')..

IT/언어 2020.06.03

[python] 머신러닝을 위한 Python(1)

1. Pythonic Code Overview ​ 많은 언어에서 여러 단어들을 하나로 붙일 때는 아래와 같이 for문 코드를 사용한다. colors = ['red', 'blue', 'green', 'yellow'] result = '' for s in colors : result += s 그러나 위의 코드를 파이썬답게 작성하면 아래와 같다. colors = ['red', 'blue', 'green', 'yellow'] result = ''.join(colors) print(result) Pythonic 코드를 배워야 하는 이유는 다음와 같다. ​ 1) 남의 코드에 대한 이해도 ; 많은 개발자들이 python 스타일로 코딩한다. 2) 효율 ; 단순 for loop append보다 list가 조금 더 빠르다..

IT/언어 2020.06.03

[python] 언더스코어(_, underscore,アンダースコア) 사용 정리

1. return 값을 무시하기 위해서 H,W,_ = img.shape 이것은 .shape의 3번째의 return 값을 무시하기 위한 언더스코어이다. python은 라이브러리가 많아서, 함수를 임포트하여 사용하는 일이 많다. 그럴 때, 혹시 함수로부터의 return값이 복수여서 사용하지 않는 부분이 있다면 언더스코어를 사용하여 del 이나 return시에 폐기하도록 할 수 있다. 2. 함수명에 사용했을 경우 이 경우 4가지 종류가 있는듯 하다. 게다가 PEP8코딩 규약에 정의가 되어 있는듯 하다. ※ PEP8 ; Naming Convention에 자세하게 적혀 있는 웹 사이트. 1) _function(x) : 함수 앞에 1개 def _single_leading_underscore(x): return n ..

IT/언어 2020.05.28

[python/Numpy] Numpy배열 ndarray의 슬라이스를 이용한 부분 배열의 선택과 대입

Python에서는 ':'(클론)을 이용한 슬라이스 [start:stop:step]를 이용하여, 리스트나 문자열, 튜플등의 시퀀스 객체의 일부를 선택하여 얻거나 다른 값을 대입하는 것이 가능하다. Numpy배열 ndarray에서도 슬라이로 부분 배열을 선택하여 추출하거나 다른 값을 대입하는 것이 가능하다. 이 포스팅에서 아래의 내용에 대해서 설명한다. - 슬라이스의 기본 - 1차원의 Numpy배열 ndarray에서의 슬라이스(슬라이싱) - 다차원의 Numpy배열 ndarray에서의 슬라이스(슬라이싱) - 뷰(view, 참조)와 복사 - 펜시 인덱싱(; 정수 리스트 혹은 배열을 이용하여 여러 개를 동시에 선택하는 방식)과의 조합 Numpy배열 ndarray의 요소나 부분 배열을 선택하는 방법에 대한 포스팅을..

IT/언어 2020.05.27

[python] Python의 os 모듈 사용법 정리

os모듈은 OS에 의존하는 다양한 기을 제공하는 모듈이다. 파일이나 디렉토리 조작이 가능하고, 파일의 목록이나 path를 얻을 수 있거나, 새로운 파일 혹은 디렉토리를 작성하는 것도 가능하다. 이 포스팅을 통해 os 모듈에서 사용할 수 있는 주요 메소드를 정리하고자 한다. 1. os.walk() os.walk()는 파일이나 디렉토리의 목록을 얻기 위한 모듈이다. 인수로 디렉토리명을 지정하는 것으로 파일이나 특정 확장자의 목록, 파일 경로를 취득할 수 있다. 예를 들어, 파일의 목록을 얻고 싶은 경우 아래와 같이 작성할 수 있다. [디렉토리의 구성] test/ ┣ dirA ┃ ┣ a-1.txt ┃ ┣ a-2.txt ┃ ┗ dirD/ ┃ ┗ d-1.txt ┃ ┣ dirB/ ┃ ┣ b-1.py ┃ ┗ b-2...

IT/언어 2020.05.21

[python] ArgumentParser(argpaser)의 사용법 간단 정리

Python의 실행시에 커맨드로 인수를 얻고 싶을 때, ArgumentPaser(argpaser)을 사용하면 편리하다. 다양한 형식으로 인수를 지정하는 것도 가능하다. 처음 argparse를 사용하고자하여 여러 포스팅을 읽어봤지만 자세한 옵션까지 해설한 포스팅이 많아 정작 하고 싶은 방법을 간단히 하는 방법을 알 수 없었던 기억이 있다. 필요한 최소한의 내용을 정리하여, 다른 사람들도 금방 읽고 적용하도록 할 수 있도록 하면 좋을 것 같다고 생각하여 작성하는 포스팅이다. 1. ArgumentParser이란? 프로그램 실행시 커맨드로 인수를 얻는 처리를 간단하게 구현할 수 있는 라이브러리이다. ArgumentParser를 사용하면, $ python program.py test.txt --alpha 0.01..

IT/언어 2020.05.20

[python] 리스트의 요소 추가와 다른 리스트와의 결합

만들어진 리스트에 새로운 요소를 추가하거나, 다ㄴ 리스트와 결합(연결)하는 방법에 대해 설명한다. 요소를 추가하는 것에는 append 메소드나 extend 메소드를 사용한다. 1. 리스트에 요소 추가하는 방법 리스트에 새로운 요소를 추가하는 방법이다. 리스형에 이용 가능한 append메소드를 이용하면 다음과 같다. list.append(값) 인수로 지정한 값을 가진 요소를 리스트의 마지막에 추가한다. 구체적으로는 다음과 같이 사용할 수 있다. mylist = ["A", "B", "C"] mylist.append("D") print(mylist) --> ["A", "B", "C", "D"] 2. 슬라이드 기능을 사용한 요소 추가하는 방법 리스트에서는 슬라이드 기능을 통해 시작 인덱스와 마지막 인덱스를 지정..

IT/언어 2020.05.19

[python] Iterator와 Generator

Python의 iterator과 generator에 대해 정리해보았다. ● iterator : 요소가 복수인 컨테이너(리스트, 퓨플, 셋, 사전, 문자열)에서 각 요소를 하나씩 꺼내 어떤 처리를 수행할 수 있도록 하는 간편한 방법을 제공하는 객체이다. ● generator : iterator의 한 종류로, 하나의 요소를 꺼내려고 할 때마다 요소 generator를 수행하는 타입으로, Python에서는 yield문을 통해 구현하는 것이 보통이다. python의 내장 컬렉션 (list, tuple, set, dic 등)의 어떤 것이든 iterable을 상속받고, 내장의 컬렉션을 사용한 반복문 처리로 미리 컬렉션 값을 입력해둬야할 필요가 있으므로 아래와 같은 경우는 interator또는 generator을 직..

IT/언어 2020.05.13
728x90