Chat GPT 실습
pip install openai
import os
import openai
# Open AI API Key 추가
openai.api_key = "{API_KEY}"
question = input("무엇을 물어볼까요?:")
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": question}
]
)
print(completion.choices[0].message.content)
Random 함수
random.random() # 0~1 실수
random.uniform(1, 10) # n~m 실수
random.randint(1, 10) # n~m 정수
random.randrange(0, 101, 2) # r 간격씩 n~m 정수
random.randrange(1, 101, 2)
random.choice('Hello') # 하나의 원소 선택
random.choice(['사과', '바나나', '오렌지'])
random.sample(range(1, 5), 3) # 여러 원소 선택 -> 리스트 형태
random.seed(505) # seed 지정 - 매번 같은 순서의 난수가 출력
lotto = random.sample(range(1,46), 6)
print(f'로또번호는 {lotto}입니다.')
items = [1,2,3,4,5]
random.shuffle([1,2,3,4,5]) # 순서 섞기
print(items)
시간함수
- time 모듈과 datetime 모듈은 파이썬에서 시간을 다루는 데에 사용되는 모듈이지만, 기능과 사용 방법이 약간 다릅니다.
- time 모듈은 유닉스 시간(Unix Time)을 다루는 데에 사용되는 모듈입니다. 유닉스 시간은 1970년 1월 1일 0시 0분 0초부터 경과한 시간을 초(second) 단위로 표현한 것입니다. time 모듈은 유닉스 시간을 계산하거나, 현재 시간을 구하는 등의 기능을 제공합니다. 또한, 시간을 문자열로 변환하거나, 시간을 대기하는 기능 등을 제공합니다.
- 반면에 datetime 모듈은 날짜와 시간을 다루는 데에 사용되는 모듈입니다. datetime 모듈은 날짜와 시간을 연산하거나, 형식을 지정하여 문자열로 변환하는 등의 기능을 제공합니다. 또한, 시간대(timezone)와 관련된 기능을 제공하여 세계 각 지역의 시간을 처리하는 데에 유용합니다.
- 따라서, time 모듈은 초(second) 단위의 시간을 다루는 데에 적합하고, datetime 모듈은 날짜와 시간을 다루는 데에 적합합니다. 두 모듈은 각각의 기능과 사용 방법이 다르므로, 사용에 앞서 어떤 모듈을 사용해야 하는 지를 고려하여야 합니다.
- 시계열데이터 분석을 할 때, pandas 를 활용한 pd.to_datetime() 을 자주 보게 되실거라, 위 차이만 참고해주시고 실습에서 익숙해집시다.
import time
time.time()
time.ctime()
time.localtime()
import datetime
from datetime import datetime # datetime. 생략 가능
now = datetime.now() # 현재 시간
print(f'현재 날짜는 {now.date()}')
print(f'현재 시간은 {now.time()}')
print(f'현재 연도는 {now.year}')
print(f'현재 월은 {now.month}')
print(f'현재 일은 {now.day}')
import pytz
datetime.now(pytz.timezone('Asia/Seoul'))
from datetime import timedelta, timezone
now = datetime.now(timezone(timedelta(hours=9)))
print("현재 : ", now)
print("현재 날짜 : ", now.date())
print("현재 시간 : ", now.time())
print("timestamp : ", now.timestamp())
print("년 : ", now.year)
print("월 : ", now.month)
print("일 : ", now.day)
print("시 : ", now.hour)
print("분 : ", now.minute)
print("초 : ", now.second)
print("마이크로초 : ", now.microsecond)
print("요일 : ", now.weekday())
print("문자열 변환 : ", now.strftime('%Y-%m-%d %H:%M:%S'))
멈추기
import time # sleep 함수
# 1. 초 단위 테스트
print('-' * 30)
now = datetime.now(timezone(timedelta(hours=9)))
print(now.strftime('%H:%M:%S')) # 현재 시간 출력
time.sleep(5) # 5 초 딜레이
now = datetime.now(timezone(timedelta(hours=9)))
print(now.strftime('%H:%M:%S'))
time.sleep(10) # 10 초 딜레이
now = datetime.now(timezone(timedelta(hours=9)))
print(now.strftime('%H:%M:%S'))
시간 측정하기
from time import process_time
start = time.time() # process_time()
print("★ 구구단을 출력합니다.\n")
for x in range(2, 10):
print("------- [" + str(x) + "단] -------")
for y in range(1, 10):
print(x, "X", y, "=", x*y)
print("---------------------")
end = time.time() # process_time()
print(f'프로그램을 수행하는데 {end - start}초가 걸렸습니다.')
리스트 [ ]
[데이터 추가 함수]
- append() 리스트 맨 마지막에 인덱스 추가
- extend() 기존 리스트에 새로운 리스트를 합침
- insert() 특정 위치에 값을 추가
[데이터 제거 함수]
- pop() 리스트 끝에서 부터 하나씩 꺼내어 반환한 뒤 삭제
- remove() 리스트에 있는 특정값을 제거
- del() 특정 인덱스 위치에 있는 값을 제거
- clear() 리스트 안에 있는 원소를 다 비우는 함수
[데이터 정렬 함수]
- sort() 오름차순으로 정렬(내림차순의 경우 reverse = True)
- reverse() 값의 순서를 거꾸로 뒤집어서 사용
[데이터 중복 확인]
- count("특정값") 특정값이 몇개나 중복으로 있는지 체크 가능
[데이터 위치 확인]
- index()
리스트 컴프리헨션
# 1. 수식 적용
[i*10 for i in range(5)] # [0, 1, 2, 3, 4]
# 2. 조건문 적용
[i for i in range(5) if i % 2 == 0] # [0, 2, 4]
다양한 방식의 리스트 출력
# enumerate 함수
for i, v in enumerate(['가위', '바위', '보']):
print(i, v)
0 가위
1 바위
2 보
# zip 함수
alist = ['가위', '바위', '보']
blist = ['바위', '보', '가위']
for a, b in zip(alist, blist):
print(a, b)
가위 바위
바위 보
보 가위
# enumerate & zip 함수
alist = ['가위', '바위', '보']
blist = ['바위', '보', '가위']
for i, (a, b) in enumerate(zip(alist, blist)):
print(i, a, b)
0 가위 바위
1 바위 보
2 보 가위
튜플 ( )
empty_tuple1 = ()
empty_tuple2 = tuple()
cust_all = ('뉴진스', '아이브', '스테이시')
# 튜플 인덱싱
print(cust_all[1]) # 아이브
# 튜플 슬라이싱
print(cust_all[1:3]) # ('아이브', '스테이시')
# cust_all[1] = '블랙핑크' # 튜플은 수정 불가
딕셔너리 { : }
empty_dict1 = {}
empty_dict2 = dict()
# 값 추가
a = {'name' : 'Kim', "phone" : '01080782069'}
a['address'] = 'Seoul'
# 값 삭제
del a["name"]
print(a)
# key 값만 가져오는
print(f'key 값은 {a.keys()}입니다.')
# value 값만 가져오는
print(f'value 값은 {a.values()}입니다.')
# 전체 다 가져오는 함수
print(f'전체 값은 {a.items()}입니다.')
세트 { }
empty_set = set()
# 세트 생성
Set_1 = {1,2,3}
print(Set_1)
# 요소 추가
Set_1.add(4) # list - append
print(Set_1)
# 여러자료 추가
Set_1.update([5,6,7,8,9,10]) # list - extend
print(Set_1)
# 요소 제거 - 특정 순서
Set_1.remove(2)
print(Set_1)
# 요소 제거 - 특정 값 삭제
Set_1.discard(10)
print(Set_1)
# 세트 연산
s1 = set(['파이썬', 'SAS', 'R', 'SQL'])
s2 = set(['파이썬', '파이토치', '텐서플로우', 'SQL'])
print(s1.union(s2)) # 합집합
print(s1.intersection(s2)) # 교집한
print(s1.difference(s2)) # s1 - s2
# set -> list -> tuple -> set
s1 = set(["파이썬", "SAS", "R", "SQL"])
s1_list = list(s1)
s1_list_tuple = tuple(s1_list)
s1_list_tuple_set = set(s1_list_tuple)
print(s1, type(s1))
print(s1_list,type(s1_list))
print(s1_list_tuple, type(s1_list_tuple))
print(s1_list_tuple_set, type(s1_list_tuple_set))
| 리스트 | 순서 O | 중복 O | 수정 O | 삭제 O | list(), [] | ex1 = [1,2,3] |
|---|---|---|---|---|---|---|
| 튜플 | 순서 O | 중복 O | 수정 X | 삭제 X | tuple(), () | ex2 = (1,2,3) |
| 딕셔너리 | 순서 x | (키)중복 x | 수정 O | 삭제 O | dict(), { : } | ex3 = {1 : ex} |
| 세트 | 순서 x | 중복 x | 수정 O | 삭제 O | set(), {} | ex4 = {1,2,3} |
'DATA ANALYSIS > TIL' 카테고리의 다른 글
| [Day7] Python 기초(5) (0) | 2023.05.04 |
|---|---|
| [Day6] Python 기초(4) (0) | 2023.05.03 |
| [Day4] Python 기초(2) (0) | 2023.04.29 |
| [Day3] Python 기초(1) (0) | 2023.04.28 |
| [Day2] 데이터 분석 개론/Github 기초 (0) | 2023.04.26 |