matplotlib
주로 2차원 도표를 위한 데스크톱 패키지
현재 IPython과 통합되어 과학계산 컴퓨팅을 위한 다양한 기능을 갖춤
다양한 GUI 백엔드를 지원하고 있으며 다양한 벡터 포맷과 래스터 포맷으로 도표 저장 가능
matplotlib 관련 IPython 매직 명령어
matplotlib을 주피터 노트북이나 ipython에서 사용하는 경우에는 아래와 같은 설정 필요
기본 파이썬 해석기나 IDLE에서는 plt.show()를 해야 matplotlib 창이 보인다.
Figure와 서브 플롯
Figure 객체: 그래프를 그릴 캔버스 역할을 하고 사용자의 상호작용을 처리한다. figsize(w, h)와 같이 크기를 설정할 수 있다.
AxesSubplot 객체: 서브 플롯 객체이다. Figure 객체 안에 하나 이상의 AxesSubplot이 존재해야 그래프를 만들 수 있다.
PyQt5로 GUI 개발
PyQt5와 PySide2의 설치
> pip install pyqt5
> pip install pyside2
designer.exe
파일 다이얼로그와 대화상자가 있는 애플리케이션 만들기
메뉴바의 File -> Open을 클릭하면 파일 다이얼로그
네트워크 및 데이터베이스 접근
빅데이터는 3v (volume, velecity, variable)
XML
반정형: XML, JSON
eXtensible Markup Language
DOM: 문서 오브젝트
xml 모듈
파이썬 표준 라이브러리에서 제공되는 XML parsing module의 주요 클래스
DOM API
파싱: 어떤 일정한 문법을 토대로 나열된 데이터들을 그 문법에 맞게 분석하여 새롭게 구성하는 작업
DOM 객체
Document: 문서 전체를 표현하는 객체
Element: 문서 계층 구조의 요소 노드
Attr: 계층 구조의 모든 속성
XML 문서의 예제
xml.dom.minidom 예제
xml.etree.ElementTree
ElementTree는 DOM 방식을 좀 더 파이썬 답게 쓰자는 생각에서 만든 것
XML 구성 요소 중에서 Element를 중심으로 트리를 구성함
JSON
JSON 형식은 객체를 사용하여 데이터 교환용으로 설계된 경량 텍스트 기반 개방형 표준
네트워크 연결을 통해 구조화된 데이터를 직렬화 및 전송하는데 사용됨
주로 서버와 웹 응용 프로그램 간에 데이터를 전송하는데 사용
텍스트 기반으로 읽고 쓰는 것이 간단함
프로그래밍 언어와 플랫폼에 독릭접으로, 서로 다른 시스템 간에 객체를 교환한다.
자바스크립트의 문법을 사용
JSON 전용 파서 기능을 웹 브라우저에 내장하고 있음
..
JSON 모듈의 네임스페이스와 주요 클래스
실습
# -*- coding:utf-8 -*-
import json
f = open('STUDENT.json', 'r') # 파일을 읽기 모드로 오픈
s = f.read()
f.close()
class STUDENT:
def __init__(self, d):
self.__dict__ = d # 값 대입
if __name__ == '__main__':
data = json.loads(s, object_hook=STUDENT) # 핸들러 지정
for MY in data.STUDENT:
hap = MY. SCORE.KOR + MY. SCORE.ENG + MY. SCORE.MATH
print(MY.NAME + ' : %3d 점' % hap)
TCP/IP 프로토콜의 구성
TCP/IP 프로토콜은 네트워크 액세스 계층, 인터넷 계층, 트랜스포트 계층, 응용 계층의 4개의 계층으로 구성됨
> 응용 계층
> 트랜스포트 계층
TCP 프로토콜UDP 프로토콜
웹 애플리케이션
파이썬 웹 애플리케이션 모듈
웹 클라이언드 API> urllib> urllib2
웹 서버 모듈> http
urllib
urllib의 주요 모듈
예외 처리
URLError: urlopen() 에서 응답을 처리할 수 없는 경우 리턴하는 에러
urllib.response
서버에 페이지 요청을 하면 서버는 클라이언트에게 페이지의 정보를 응답한다.geturl(), info(), read() 메소드로 리턴받아 출력한다.
웹 서버 모듈:
http웹은 클라이언트(브라우저)가 웹 서비스
실습 11-4
# -*- coding:utf-8 -*-
from http.server import BaseHTTPRequestHandler, HTTPServer # 모듈 임포트
PORT_NUMBER = 8000 # 포트 지정
class myHandler(BaseHTTPRequestHandler): # 핸들러 상속
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(bytes('<h1>DOit Server![11-4]</h1>', 'utf-8'))
return
try:
server = HTTPServer(('127.0.0.1', PORT_NUMBER), myHandler) # 서버 생성
print('Started httpserver on port ', PORT_NUMBER)
server.serve_forever()
except KeyboardInterrupt:
print('^C received, shutting down')
server.socket.close()
데이터베이스 (SQLITE3)
'Study > AI' 카테고리의 다른 글
AI와 데이터 분석을 위한 python 프로그래밍 기초 #2 (0) | 2021.02.23 |
---|---|
AI와 데이터 분석을 위한 python 프로그래밍 기초 #1 (0) | 2021.02.22 |
머신러닝 공부 #3 (0) | 2021.02.16 |
머신러닝 공부 #2 (0) | 2021.01.04 |
머신러닝 공부 #1 (1) | 2021.01.04 |