파이썬 79

프로그래머스 코딩 기초 트레이닝 Python Day16 ~ Day25

DAY16 문자열 대문자로 바꾸기def solution(myString): return myString.upper()테스트:print(solution("aBcDeFg"))# "ABCDEFG"print(solution("AAA"))# "AAA"설명:upper() 메서드는 문자열의 모든 알파벳을 대문자로 변환이미 대문자인 경우는 그대로 유지됨 소문자로 바꾸기def solution(myString): return myString.lower()테스트:print(solution("aBcDeFg"))# "abcdefg"print(solution("aaa"))# "aaa"설명:lower() 메서드는 문자열의 모든 알파벳을 소문자로 변환이미 소문자인 경우는 그대로 유지됨 배열에서 문자열 대소문자 변환하기def ..

프로그래머스 코딩 기초 트레이닝 Python Day6 ~ Day15출처

DAY6 조건문 반복문 마지막 두 원소def solution(num_list):# 마지막 원소와 그 전 원소 비교 if num_list[-1] > num_list[-2]:# 마지막 원소가 더 크면 그 차이를 추가 num_list.append(num_list[-1] - num_list[-2]) else:# 마지막 원소가 더 크지 않으면 마지막 원소의 두 배를 추가 num_list.append(num_list[-1] * 2) return num_list설명:리스트의 마지막 원소와 그 전 원소 비교:num_list[-1]은 마지막 원소num_list[-2]는 마지막에서 두 번째 원소조건에 따른 값 추가:마지막 원소가 더 크면: 두 원소의 차이를 추가마지막 원소가 더 크..

프로그래머스 코딩 기초 트레이닝 Python Day1 ~ Day5

DAY 1문자열 출력str = input()print(str) a, b 출력a, b = map(int, input().strip().split(' '))print("a =", a)print("b =", b)a, b = map(int, input().strip().split(' '))input(): 사용자로부터 문자열을 입력받습니다.strip(): 입력된 문자열의 앞뒤 공백을 제거합니다.split(' '): 문자열을 공백을 기준으로 나누어 리스트로 만듭니다map(int, ...): 리스트의 각 문자열을 정수로 변환합니다a, b = ...: 변환된 두 정수를 변수 a와 b에 각각 할당합니다예시: 입력이 "4 5"인 경우"4 5" (입력) → "4 5" (strip) → ["4", "5"] (split) → ..

[Python/AI] Hugging Face 감정 분석 웹 애플리케이션 코드 분석 - 2편

0.전체 코드https://hunseop2772.tistory.com/373 [Python/AI] Hugging Face와 Streamlit으로 구현하는 감정 분석 웹 애플리케이션 -1편 코드개요이번 포스팅에서는 Hugging Face의 Transformers 라이브러리와 Streamlit을 활용하여 감정 분석 웹 애플리케이션을 구현하는 방법을 다룹니다. 프로덕션 레벨의 코드 구조와 실제 구현 방법에 중점을hunseop2772.tistory.com 1. 프로젝트 아키텍처 분석1.1 전체 구조sentiment_analysis/├── src/│ ├── analyzer.py # 핵심 감정 분석 로직│ ├── utils.py # 유틸리티 함수│ └── app.py # ..

LLM(Open AI) 2024.11.17

chatGpt 이용한 로또번호 맞추기 GUI - Python

GPT 에게 물어본 내용1 :파이썬을 가지고 롯도번호 생성기를 만들어줘 여기서 내가 원하는 6개를 선택하고 몇등인지 까지 -> 맞추기 게임인데 등수랑 답이 먼저나와 실패import random # 로또 번호 생성기 함수 def generate_lotto_numbers(): return random.sample(range(1, 46), 6) # 1부터 45 사이의 숫자 중에서 6개를 랜덤으로 선택 # 사용자가 선택한 로또 번호 입력 받기 def get_user_numbers(): user_numbers = [] for i in range(6): while True: try: num = int(input(f"{i + 1}번째 숫자를 입력하세요 (1부터 45까지): ")) if 1

Chatgpt 2023.09.13

chatGpt 이용한 모자이크 얼굴 사진 만들기

필요한 패키지 설치하기 pip install opencv-python-headless pip install dlib dlib 설치오류 위와 같이 dlib 설치가 오류가 발생하여 깃허브에서 직접 다운로드하여 해당 폴더로 이동하여 다시 설치하니 문제가 없었다. 나는 파이썬 3.8버전을 사용해서 pip install dlib-19.19.0-cp38-cp38-win_amd64.whl을 다운로드 하였다. chatGpt 요청한 내용 : 파이썬으로 사진에서 얼굴만 찾아 모자이크 처리하는 프로그램을 만들어 import cv2 import dlib # 얼굴 감지기 초기화 face_detector = dlib.get_frontal_face_detector() # 이미지 불러오기 image_path = 'input.jpg'..

Chatgpt 2023.09.12

Gpt로 코딩하기 음식 추천 프로그램

✔ Gpt 입력: 파이썬으로 음식추천 프로그램을 짜줘import random def recommend_food(food_type): food_list = { "한식": ["비빔밥", "불고기", "된장찌개", "김치찌개", "불닭볶음면"], "중식": ["짜장면", "짬뽕", "탕수육", "양장피", "마파두부"], "일식": ["초밥", "라멘", "규카츠", "우동", "텐동"], "양식": ["피자", "스테이크", "파스타", "버거", "샐러드"], "기타": ["치킨", "햄버거", "아이스크림", "팝콘", "토스트"], } recommended_foods = food_list.get(food_type, ["없음"]) recommended_food = random.choice(recommen..

Chatgpt 2023.08.10

Gpt로 프로그램 코드짜기 단어장만들기 파이썬

✔ Gpt입력 : 파이썬으로 일상생활에서 많이 쓰는 단어를 암기할 수 있는 프로그램을 짜줘import random # 단어와 뜻을 저장할 사전 word_dictionary = {} def add_word(): word = input("단어를 입력하세요: ").strip().lower() meaning = input(f"'{word}'의 뜻을 입력하세요: ").strip().lower() word_dictionary[word] = meaning print(f"'{word}'가 사전에 추가되었습니다.") def review_words(): if not word_dictionary: print("사전이 비어 있습니다.") return print("단어들을 검토 중...\n") words_to_review = ..

Chatgpt 2023.08.07

Chatgpt 이용한 프로그램 짜기 6 - 파이썬 환율 변환기

✔ GPT 입력 : 파이썬으로 환율 변환기를 만들어줘 가입이 필요 없는 방식으로 pip install requests ✔ GPT 가 작성한 코드 import requests def get_exchange_rate(base_currency, target_currency): url = f"https://api.exchangerate-api.com/v4/latest/{base_currency}" response = requests.get(url) data = response.json() return data["rates"].get(target_currency) def currency_converter(amount, base_currency, target_currency): exchange_rate = get_..

Chatgpt 2023.07.27

Chatgpt 이용한 프로그램 짜기 5 - 파이썬(CPU, RAM, 네트워크 사용량)

✔ gpt입력 내용 : 매초마다 CPU, RAM 및 네트워크 사용량을 출력하는 프로그램을 Python으로 작성해줘import psutil import time def monitor_system(): while True: cpu_percent = psutil.cpu_percent(interval=1) ram_usage = psutil.virtual_memory().percent network_stats = psutil.net_io_counters() network_sent = network_stats.bytes_sent network_recv = network_stats.bytes_recv print(f"CPU Usage: {cpu_percent}%") print(f"RAM Usage: {ram_usage..

Chatgpt 2023.07.19

Chatgpt 이용한 프로그램 짜기 4 - 파이썬(QR코드 생성)

✔ gpt입력 내용 : Python에서 QR 코드를 생성하는 코드 작성해줘 import qrcode def generate_qr_code(data, filename): qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4) qr.add_data(data) qr.make(fit=True) qr_image = qr.make_image(fill_color="black", back_color="white") qr_image.save(filename) data = "https://www.example.com" filename = "qr_code.png" generate_qr_code(..

Chatgpt 2023.07.18

Chatgpt 이용한 프로그램 짜기 1 - 파이썬(숫자맞추기게임)

chat gpt를 이용해 파이썬으로 만들 수 있는 작업을 시행할 예정이다. 최종 목표는 gpt만을 이용하여 영상 자막을 실시간으로 번역해주는 작업을 할 예정이다. api의 경우에는 스프링부트를 이용할 예정이고 기본적인 내용은 파이썬을 이용할 예정이다. 시간이 가용하다면 프론트단까지 꾸미는게 목적이다. 그전에 간단하게 gpt를 이용하여 프로그램을 짜는 방법을 사용해볼 예정이다. ✔ Chat gpt만을 이용한 프로그래밍 - 이동 https://chat.openai.com/ // 주소 ✔ gpt에게 질문할 내용 파이썬 숫자 맞추기 게임을 만들거다. 1 ~ 100 까지 무작위 숫자를 생성하고. 숫자를 입력하면 랜덤 숫자랑 비교해서 숫자가 큰지 작은지 알려줘. 숫자를 맞춘게 몇 회만에 맞췄는지 알려주고 게임을 종..

Chatgpt 2023.07.15

코딩테스트 - 파이썬 - 상자 채우기

def solution(n): if n == 0: return 0 box_5 = n // 5 # 5kg 무게의 상자 개수를 최대한 많이 채우는 경우를 계산하여 box_5에 저장 while box_5 >= 0: # box_5 값이 0 이상인 동안 반복 remaining = n - (5 * box_5) # 남은 무게를 계산하여 remaining에 저장 if remaining % 3 == 0: # 남은 무게가 3의 배수인 경우, 3kg 무게의 상자로 채울 수 있음 box_3 = remaining // 3 # 3kg 무게의 상자 개수를 계산하여 box_3에 저장 return box_5 + box_3 # 5kg과 3kg 무게의 상자 개수를 합하여 반환 box_5 -= 1 # 가능한 경우가 없는 경우, box_5 ..

코딩테스트 준비 - 팰린드롬

팰린드롬(palindrome)은 앞에서부터 읽어도 뒤에서부터 읽어도 동일한 문자열 또는 숫자열을 말합니다. 예를 들면 "level", "radar", "madam" 등이 팰린드롬의 예시입니다. 팰린드롬은 문자열뿐만 아니라 숫자나 기호 등 다양한 형태로 나타날 수 있습니다. def solution(n, m): count = 0 # 팰린드롬 숫자의 개수를 저장하는 변수 for num in range(n, m + 1): # n부터 m까지의 범위에서 숫자를 하나씩 확인 num_str = str(num) # 숫자를 문자열로 변환하여 각 자리수를 확인하기 위한 변수 is_palindrome = True # 현재 숫자가 팰린드롬인지 여부를 저장하는 변수 # 숫자의 각 자리수를 확인하여 팰린드롬인지 여부를 판단 for..

파이썬 코딩테스트 - 괄호짝 맞추기 - 참고용

def check_matching_brackets(s): stack = [] # 스택 초기화 # 닫힌 괄호를 키(key)로, 여는 괄호를 값(value)으로 하는 딕셔너리 brackets = {')': '(', '}': '{', ']': '['} for char in s: if char in brackets.values(): # 여는 괄호일 경우 스택에 push stack.append(char) elif char in brackets.keys(): # 닫는 괄호일 경우 if not stack or brackets[char] != stack.pop(): # 스택이 비어있거나, 짝이 맞지 않는 경우 False 반환 return False else: # 괄호 이외의 문자는 무시 continue # 스택에 남아..

파이썬 - 추첨결과 - 코딩테스트 - 참고용

if __name__ == "__main__": # 입력 받기 n = int(input()) # 당첨시킬 응모권의 수 numbers = list(map(int, input().split())) # 추첨함 속 응모권에 적혀 있는 회원번호 리스트 # 중복 제거를 위해 set 사용 unique_numbers = set(numbers) # 추첨 대상으로 인정할 회원번호들을 담을 리스트 winners = [] # 추첨 대상으로 인정된 회원번호들을 winners 리스트에 추가 for num in unique_numbers: if numbers.count(num)

데이터분석 프로젝트 (파이썬 Covid-19 사진 학습(분류) 3)

11. 모델 검증을 위한 Accuracy 생성하기 @torch.no_grad() # 아래 붙어 있는함수가 작동을 할때 def get_accuracy(image, target, model): batch_size = image.shape[0] prediction = model(image) _, pred_label = torch.max(prediction, dim=1) is_correct = (pred_label == target) return is_correct.cpu().numpy().sum() / batch_size 12. 모델 학습을 위한 함수 구현하기 # 모델을 학습하기 위한 함수를 만들어보자 device = torch.device('cpu') # epcoh: 데이터 전체를 한바퀴를 돌리는것? # m..

데이터분석 프로젝트(파이썬 Covid-19 사진 학습(분류) 1)

✔ 설치 !pip install torch !pip install torchvision !pip install ipywidgets 1. Torch를 기반으로 하며, 자연어 처리와 같은 애플리케이션을 위해 사용된다. GPU사용이 가능하기 때문에 속도가 상당히 빠르다 2. 파이토치가 제공하는 다양한 모델을 가져다 쓰기 위해 사용되는 라이브러리 3. 이미지를 커서를 가지고 이동하면서 이미지를 볼 수 있게하는 라이브러리(슬라이딩 등) ✔ import import torch import copy import os import cv2 import matplotlib.pyplot as plt from torch.utils.data import Dataset, DataLoader from torchvision impo..

테서렉트 설치(사전준비)

테서랙트란? 테서랙트는 다양한 운영 체제를 위한 광학 문자 인식 엔진이다. 이 소프트웨어는 Apache License, 버전 2.0, 에 따라 배포되는 무료 소프트웨어이며 2006년부터 Google에서 개발을 후원했다 ✔ 다운로드 주소 테서렉트 다운로드 http://github.com/UB-Mannhein/tesseart/wiki ✔ 설치 버전 2023-03-15일 기준 tesseract-ocr-w64-setup-5.3.0.20221222.exe (64 bit) resp. 다운로드 - 설치중 Additional script data 항목에서 'Hangul Script', 'Hangul vertical Script' 항목 체크 - Additonal language data 항목에서 'Korean' 항목 체..

Python/openCV 2023.03.16

Python OpenCV (영상 필터링, 블러, 가우시안, 미디안, 샤프닝, 케니)

영상 필터링 커널(filter)라고 하는 정방행렬을 정의하고, 이 커널을 이미지 위에서 이동시키면서 커널과 겹쳐진 이미지 영역과(컨벌루션 연산) 연산을 한 후 그 결과값을 연산을 진행한 이미지 픽셀을 대신하여 새로운 이미지를 만드는 연산 # 컨벌루션 곱을 하면 3바이 3행렬에서 1개가 나온다. 새로운 이미지를 만든다는 뜻이다. 필터링 - 영상에서 필요한 정보만 통과시키고 원치 않는 정보를 걸러내는 작업 예) 노이즈를 제거하여 영상을 깔끔하게 만드는 필터. 부드러운 느낌의 성분을 제거하여 날카로운 느낌이 나도록 만들 수 있음 - 영상의 필터링은 마스크라고 부르는 작은 크기의 행렬을 이용 - 마스크는 필터링의 성격을 정의하는 행렬이며 커널 또는 필터라고 부름 - 마스크의 정중앙을 고정점으로 사용 ✔ Open..

Python/openCV 2023.03.12

Python OpenCV (영상의 이진화, 자동 이진화, 지역 이진화, 적응형 이진화, 모폴로지)

영상의 이진화(Binarization)- 픽셀을 검은색 또는 흰색 같이 두 개의 값으로 나누는 작업- 영상에서 의미있는 관심 영역(ROI)과 비관심 영역으로 구분할 때 이진화를 사용- 배경(background)과 객체(object)를 나눌 때- 그레이스케일에서는 영상을 이진화 시킬 때 특정값을 정해놓고 픽셀값이 특정값보다 크면 255, 작으면 0으로 설정- 영상을 연산할 때 255 또는 0으로 나누는 특정값을 임계값이라고 함cv2.treshold(영상, 임계값, 최대값, cv2.THRESH_로 시작하는 플래그)플래그cv2.THRESH_BINARY : 이진화 시키는 상수cv2.THRESH_BINARY_INV : 임계값보다 작으면 배경영상, 크면 검은색을 출력✔ treshold 함수는 영상의 이진화 뿐 아니..

Python/openCV 2023.03.10

Python openCV (어파인, 크기변환, 영상회전, 보간법, 투시변환)

영상의 기하학적 변환 - 영상의 밝기, 명암비 조절, 필터링 등은 픽셀 위치는 고정한 상태에서 픽셀 값만 변경했지만, 기하학적 변환이라는 것은 픽셀 값은 그대로 유지하면서 위치를 변경하는 작업 - 영상을 구성하는 픽셀의 배치 구조를 변경함으로 전체 영상의 모양을 바꾸는 작업 ✔ 어파인 변환(affine transformation) 영상을 평행 이동시키거나 회전, 크기 변환 등을 통해 만들 수 있는 변환을 통칭 영상에서 (x,y) 좌표의 픽셀을 결과 영상의 (x' , y') 좌표로 변환하는 방법 { x' = f1(x, y), y' = f2(x, y) } { x' = f1(x, y) = ax + by + c, , y' = f2(x, y) = dx + ey + f } 위 수식을 행렬을 이용하여 아래와 같이 표..

Python/openCV 2023.03.09

파이토치

1. 파이토치(Pytorch) tensorflow와 함께 머신러닝 , 딥러닝에서 가장 널리 사용되는 프레임워크 초기에는 Torch라는 이름으로 Lua언어 기반으로 만들어졌으나, 이후 Python 기반으로 변경한 것이 Pytorch 뉴욕대학교와 페이스북이 공동으로 개발하였고, 현재 가장 대중적이고 널리 사용되는 프레임워크 1-1. Tensor 텐서는 배열이나 행렬과 매우 유사한 특수 자료구조 파이토치는 텐서를 사용하여 모델의 입력과 출력, 모델의 매개변수들을 부호화함

신경망

1. 신경망(Neural Network) 머신러닝 알고리즘 중 하나 인간의 외기능을 흉내 내려고 만들어진 기술 입력층, 은닉층, 출력층으로 나뉘어져 있음 층을 점점 늘려서 싶게 만든 신경망을 심층 신경망(Deep NEural Network)이리고 부름 깊은 층을 가진 신경망의 자궁치를 학습시키는 것을 딥러닝 또는 심층학습이라고 함 1-2. 신경망으로 할 수 있는 것 회귀 분류 클러스터링 이미지 생성(영상, 동영상) 자연어 처리 2. 신경망의 진화 1950년대 퍼셉트론에 대한 아이디어가 나옴 1980년대 오차역전파법으로 신경망 학습을 개발 -> 데이터 부족으로 개발에 진전이 없음 2000년대 인터넷이 보급된 후 많은 데이터를 얻을 수 있게 되면서 다시 주목받게 됨 2012년 CNN중 Alex net이라는 ..

머신러닝 로지스틱 회귀

지금까지는 에측 모델이다, 로지스틱 회귀 같은 경우도 예측선을 그어주기는 하지만 데이터가 존재하는 예측선을 그어주고 서로 분류를 해주는 것이다. 예를들어 해당 범위에 있는 것을 참 거짓을 판별해준다. employee_id : 임의의 아이디 department : 부서 region : 지역 education : 학력 gender : 성별 recruitment_channel : 어떤 방식으로 채용도히었는지 no_of_trainings : 트레이닝 받은 횟수 age : 나이 previous_year_rating : 작년 고과 점수 length_of_service : 근속 년수 awards_won : 수상경력 avg_training_score : 고과 평균점수 is_promoted : 승진 여부 도큐먼트 독립변..

Python 데이터분석 크롤링(벅스뮤직, 멜론, 지니 차트)

크롤링(Crawling): 인터넷의 데이터를 활용하기 위해 정보들을 분석하고 활용할 수 있게 수집하는 행위 스크레이핑(Scraping): 크롤링 + 데이터를 추출해서 가공하는 최종 목표 4. 멜론 차트 robots.txt : 웹사이트에 웹 크롤러같은 로봇들의 접근을 제어하기 위한 규약. 권고안이라 꼭 지킬 의무는 없음 5. 지니 차트 200

Python 자료구조&알고리즘 - 순차 탐색, 이진 탐색

1. 순차 탐색(Sequential Search) 탐색은 여러 데이터 중에서 원하는 데이터를 찾아내는 것을 의미 데이터가 담겨있는 리스트를 앞에서부터 하나씩 비교해서 원하는 데이터를 찾는 방법 1. 이진 탐색(Binary Search) 탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방 1-1. 이진 탐색과 순차 탐색의 비교 2. 분할 정복 알고리즘과 이진 탐색 분할 정복 알고리즘 divide : 문제를 하나 또는 둘 이상으로 나눔 conquer : 나눠진 문제가 충분히 작고 해결이 가능하면 해결하고, 그렇지 않으면 다시 나눔 이진 탐색 divide : 리스트를 두 개의 서브 리스트로 나눔 conquer : 검색할 숫자 > 증가값 : 뒷 부분의 서브 리스트에서 검색힐 숫자를 찾음 검색할 ..

Python 자료구조&알고리즘 - 분할 정복

1. 분할 정복(Division Conquer) 문제를 나눌 수 없을 떄까지 나누어서 각각을 풀면서 다시 병합하여 문제의 답을 얻는 알고리즘 하향식 접근방법으로 상위의 해당을 구하기 위해 아래로 내려가면서 하위의 해답을 구하는 방식(재귀함구로 구현) 문제를 잘게 쪼갤때 부분 문제는 서로 중복되지 않음 Memorization 기법을 사용하지 않음 2. 대표적인 분할 정복 알고리즘 : 퀵 정렬(quick sort 정렬 알고리즘의 꽃(고급 알고리즘) 기준점(pivot)을 정해서 기준점보다 작은 데이터는 왼쪽, 큰 데이터는 오른쪽으로 모으는 함수를 작성 각 왼쪽, 오른쪽은 재귀용법으로 사용해 다시 동일 함수로 호출하여 위 작업을 반복함 2-1. 퀵 정렬 알고리즘 구현 리스트 개수가 1개면 해당 리스트를 리턴 리..