통계 분야에는 파이썬 주로 사용
다양한 라이브러리가 많아
원하는 기능구현에 집중할 수 있음
원하는 인공지능을 구현하기 위한 통계와 시각화 기반의 라이브러리를 제공하고 있다.
구글은 이러한 파이썬 언어를 바탕으로 머신러닝과 딥러닝을 자유롭게 구현하고 다양하게 실험할 수 있도록 구글은colaboratoty(코랩)을 만들었다.
코랩은 인터넷만 가능하다면 그 어떠한 공간에서도 실행할 수 있으며, 심지어 스마트폰에서도 가능하다.
복잡하고 무거운 프로그램도 별도로 설치할 필요 없음
파이썬 사칙연산 가능
shift + enter : 코드 즉시 실행
ctrl + enter : 다음 코드랑 생성없이 이 코드만 실행됨
** : 제곱
/ : 일반 나눗셈(소수점까지 반환) 13/2 => 6.5
// : 나눗셈의 몫을 정수로 반환 13//2 => 6
% : 나눗셈의 나머지 출력 11 % 3 => 2
파이썬은 복소수를 j라는 값을 사용해 표현
1.2 + 3.4 j => (1.2+3.4j)
데이터 타입
type()을 이용하여 데이터 타입 확인
이런 값들을 저장하며, 저장된 값들을 통해 다양하게 활용해야함
이러한 변수들을 저장하기 위해 필요한 것이 등호 기호
등호 기호를 사용하여 오른쪽에 있는 데이터들을 왼쪽 변수로 저장할 수 있다.
x=10
변수의 이름은 자유롭게 할 수 있지만
첫 문자는 알파벳, 한글, underbar(_) 밑줄만을 사용해야
함
if나 for 등의 미리 지정된 예약어는 사용할 수 없다.
예약어 모음은 코드입력란에 help('keyword')라고 치면 알 수 있다.
# 주석, 주석은 코드로 인식되지 않음
변수는 하나의 값만 가질 수 있음
그래서
리스트(list)
다수의 값들을 저장하고 있는 존재, 물품이나 사람의 이름 따위를 일정한 순서로 적어 놓은 것
리스트에 저장된 값들은 각각 '요소'라고 부름
리스트의 요소 각각에는 위치가 지정되어 있음
해당 요소를 사용하기 위해서는 이러한 위치를 통해 접근해야함
대괄호 안의 숫자를 '인덱스'라고 부름
파이썬에서의 첫번째는 1이 아닌 0부터 시작한다는 점 꼭 기억하기
'음수 인덱스'는 뒤에서 부터 시작, 맨 뒤값만 출력
리스트 장점은 리스트 안에 또 다시 리스트, 문자열, 소수, 정수 등 저장할 수 있는 데이터 타입과 깊이의 제약이 없음
다차원 데이터가 등장함에 따라 리스트의 강력함이 나타나게 된다.
콜론을 사용하여 범위를 지정하면 요소 여러 개를 한 꺼번에 출력할 수 있다.
콜론 이전 요소 값은 포함되지만 콜론 이후 요소값은 미포함되기 때문에 "~ 이상 ~미만"으로 알아두기
[:3]은 첫 번째부터 세 번째 요소까지 전부 출력이라는 형식으로 사용됨
언제든지 수정 가능
튜플
대괄호가 아닌 소괄호를 이용
한 번 만든 요소에 대하여 추가 변경 삭제가 불가능
튜플은 변경하려면 에러를 불러일으킴
- 데이터가 바뀌지 않기에 리스트보다 처리속도가 약간 빠르다.
조건문과 반복문(conditional and loop)
- 코드의 시작 지점부터 끝 지점까지 코드가 실행되는데 조건문이란 개념을 통해 조건을 지정하게 되면 코드 실행에 대한 순서를 조정할 수 있게 된다.
![](https://velog.velcdn.com/images%2Fnahye0910%2Fpost%2F53070847-514e-4906-b0c9-6c9b763b7e39%2Fimage.png)
함수와 클래스를 사용한다면 코드를 반복해서 작성할 필요가 없어진다.
👆 함수 사용할 때 프로그램의 순서도
함수와 마찬가지로 코드의 반복을 줄이기 위해서도 사용되지만, 대체로 규모가 큰 프로그램을 만들 때 개발자가 코드를 잘 이해하기 위해 사용되고는 한다.
13번째 코드에서 e변수에 점이 하나 있고 sender 변수가 붙어 있는데, 이는 Email 클래스 안에 있던 sender 변수에 접근하고자, 점을 이용한 것이다.
16번째, 17번째 코드는 14번째 줄에서 만든 리스트를 순회하면서 e클래스 변수에 있는 send_mail() 함수를 호출
출력화면
다른 파이썬 파일에 있는 클래스를 사용하는 방법은 import와 from을 사용함
메모장을 열고 1번째부터 10번째 코드 까지 바탕화면에 저장하기
코렙 좌측에 보면 업로드 버튼 누르기
우리가 저장한 파이썬 파일 저장해 코렙으로 불러주기
(코렙이 켜져있는 상태에서만 가능하니 코렙을 실행한다면 파이썬 파일 한 번 더 불러와주기)
from 파일이름 import 클래스명
이 파이썬 파일에 있는 클래스를 이 코드란으로 불러올 수 있게 된다.
또 클래스에 있는 함수와 변수도 활용할 수 있게 된다.
이처럼 각 기능을 다른 파이썬 파일에 나눠 개발함으로써,
개발자도 코드 관리가 쉬워 생산성을 향상할 수가 있게 된다.
클래스는 좀 더 깊은 분야까지 접근했을 때 등장하는 개념
하지만 클래스나 객체 기반의 객체지향 프로그래밍 개념은 파이썬을 사용한다면 꼭 알아야한다.
이후 규모가 거대한 프로젝트나 시스템 개발에 있어 이러한 클래스 기반의 개념은 필수가 됨.
아는 데이터 형식 : text, csv, excel
요즘 같이 공공데이터에 대한 수요와 공급이 넘쳐나는 세상에서, 내가 알고 싶은 데이터를 확보하기 위해
오픈 api 그리고 json 타입의 파일을 알아보자
JSON은 그 이름에서 유추할 수 있듯 JavaScript Object Notation의 약자로 자바스크립트의 프로그래밍 언어 부분에 기반하고 있으며, 데이터를 효율적으로 저장하고 교환하는데 사용되는 텍스트 데이터 형식 중 하나
사람이 읽고 쓰기에도 쉬우며 또한 컴퓨터가 파싱하고 생성하기에도 쉽기에 자주 사용됨
✔ 파이썬의 list와 tuple이 JSON으로 변환하게 되면 array로 바뀌며, 반대로 JSON의 array는 파이썬의 list로 변환하게 된다는 점!
파이썬에서 JSON을 다룰려면 내장모드의 JSON이 필요
import JSON 해주기
JSON형식의 데이터를 열어 파이썬 객체로 읽어와 주는 것
- with문과 함께 open함수를 사용하여 json파일 불러옴, 뒤에 as로 별칭 지어줌
- 불러와진 data를 json 모듈의 load 함수에 첨가 시켜 파이썬 객체(json_data)로 저장시켜줌
파이썬의 객체를 JSON의 문자열로 변환하기
이름과 값의 집합, 정렬된 값의 리스트 이렇게 두 개의 구조로 이루어져 있으며
컴퓨터와 사람 모두 읽고 쓰기 쉬운 형태로 되어 있다.
우린 이 api를 가지고 무엇인가를 개발하려는 목적이 아니기 때문에 우리만의 문장으로 바꿔보면
라고 정의할 수 있다.
Open API를 사용하면 데이터를 가져올 수 있다는 이야기가 되는데, 공공데이터를 먼저 가져오기 앞서, 영화진흥위원회에서 제공해주는 Open API를 사용하여 일별 영화 순위 정보를 가져와 보자
Open API를 활용하려면 해당 업체에서 제공해주는 '키'가 필요하게 된다.
한두 명의 사람이 API를 너무 과도하게 사용하게 되면, 제공 해주는 입장에서도, 아니면 또 다른 사용자들에게도 부담이 되기 때문에, 제공자 입장에서는 어느 정도의 컨트롤이 필요함
종종 키가 필요없는 경우도 있긴 하다.
영화진흥위원회의 open api를 사용하기 위한 키가 필요한데, 여기서는 하나의 키를 가지고 일 3000회까지 사용할 수 있다고 함
회원가입이 귀찮으면 여기 이 키를 사용해보기
Open API를 제공하는 곳에서는 "API를 이렇게 사용하세요"라고 일종의 가이드라인을 제시해준다.
그래야 사람들이 이용할 수 있기 때문
내가 찾는 데이터가 맞으면 파이썬을 통해 접근해줘야 하는 주소인 URL 찾기
다양한 방식이 있지만 이곳에 응답 예시가 있는데
우리가 앞서 발급받은 키와 날짜로 추정되는 숫자가 보인다.
이 URL을 가져다가 나만의 키 값으로 바꿔주고, 내가 원하는 기준 날짜로 설정해주기
URL에 들어있는 정보를 요청하기 위해
request 모듈의 get함수를 이용하여 정보를 저장해주기
다음 인간이 확인하기 위해서 text문자로 변환해 주고
JSON형태로 변환하여 살펴보기 위해
맨 마지막 줄을 사용해준다.
JSON 모듈의 dumps 함수를 사용해주고 가독성 향상을 위한 속성값을 설정해주면 데이터 출력됨
앞서 봤던 API 가이드라인을 참고해
이 단어가 뜻하는 게 무엇인지 알려주고 있음
이러한 설명들을 바탕으로 우리가 출력한 데이터를 확인해주기
우리가 원하는 데이터를 출력하기 위해 key라는 함수를 통해 어떠한 key들을 사용해줘야 하는지 확인하기
key들이 출력 됐는데 이 때 앞서 확인한 정보를 바탕으로 이 데이터는 대략 여기쯤 있겠구나 라고 확인해주기
우리가 확인하고 싶은 정보는 dailyBoxOfficeList에 들어있음
여러개의 데이터를 반복해서 출력해야하는 상황이니 for문을 사용해주고
최종데이터가 저장된 객체에 제일 상단에 있는 boxOfficeResult, dailyBoxOfficeList
그리고 각 i에 담긴 데이터에 우리가 원하는 응답필드(rank, rankOldAndNew, movieCD, movieNm, saleAmt)를 넣어 출력해보기
영화 순위에 대한 데이터 출력됨
추가로 이런 데이터를 pandas 프레임 형식으로 저장하고 싶다면 append 함수를 사용해주면 됨.
공공데이터 포털 접속
찾고 싶은 주제를 적으면 open api정보가 나타나는데
우리가 알고 싶은 건 단 2가지
이 참고 문서와 url
일단 이 참고문서를 클릭하면 요청 url과 응답필드를 확인할 수 있는데 이 open api는 따로 key값이 존재하지 않음
이전 사용했던 코드를 그대로 가져와 url만 변경
객체 이름은 원하는 이름으로 수정후 데이터 확인하기
우리가 확인하고자 하는 공적 마스크 현황 데이터는 sales라는 key 안에 들어있는 것을 확인 가능
한 번에 데이터 프레임으로 저장하기 위해
빈 리스트로 생성한 다음 for문을 통해 반복문을 선언해 주고 sales라는 key로 접근하여 append함수를 통해 각 i에 담긴 값들을 list에 저장해주면 됨
그리고 pandas dataFrame에 저장해주면
원하는 정보를 확인할 수 있게 된다.