본문 바로가기
반응형

Programming/Python_Etc42

파이썬 turtle 라이브러리 import turtle turtle.title('거북이') turtle.color('black', 'red') turtle.shape('turtle') turtle.penup(); turtle.write("빠른 거북이!!") turtle.forward(80) turtle.pendown(); turtle.backward(100) turtle.exitonclick() 수행해보니 이번엔 속도가 너무 빠르네요. 속도값은 다음과 같습니다. 0: 가장 빠른 1: 가장 느린 3: 느린 6: 보통 (기본값) 10: 빠른 지금 기본값이 보통 이라고? 너무 빠른데요. 1로 변경해보겠습니다. import turtle turtle.title('거북이') turtle.color('black', 'red') turtle.sha.. 2024. 4. 2.
Tkinter 위젯 배치 스터디 - frame Tkinter에서 다른 위젯의 배치를 위한 Frame을 사용할 수 있습니다. 아래는 Frame 예제입니다. import tkinter as tk root = tk.Tk() root.title("GUI Frame") root.geometry("640x480+100+100") root.resizable(True,True) frame1 = tk.Frame(root, relief="solid", bd=1, highlightcolor="red") frame1.pack(side="top", fill="both", expand=True) frame2 = tk.Frame(root, relief="solid", bd=2, bg="blue") frame2.pack(side="bottom", fill="both", expa.. 2024. 4. 2.
Tkinter 위젯 배치 스터디 - grid / pack / place Tkinter에서 위젯을 화면에 배치하는 방법에는 pack / grid / place의 세가지 방식이 있습니다. grid는 엑셀과 같은 이미지를 떠올리면 될 것 같습니다. 행과 열을 기준으로 위치시키는 방식이고, pack은 상/하/좌/우(동/서/남/북)으로 위치시키는 방식, 그리고 place는 절대좌표계를 이용해서 위치시키는 방식입니다. 1. Grid방식 import tkinter as tk root = tk.Tk() root.title("GUI Grid위젯배치") root.geometry("640x480+100+100") root.resizable(True,True) bb1 = tk.Button(root, text="(0,0)") bb1.grid(row=0,column=0) bb2 = tk.Button.. 2024. 3. 29.
Tkinter 기본 활용 예전에 테스트삼아 해봤는데, 오랫만에 하니까 잘 모르는 것도 있고, 좀 바뀐 부분도 있어서 정리도 할겸 올립니다. 아래와 같은 tkinter 화면을 만들겁니다. 1. main.py 우선 main.py에서는 구동만 시켜주고, 화면을 구성하는 파일은 gui.py로 별도 모듈로 만들 예정입니다. import gui if __name__ == '__main__': gui.main_screen() 2. gui.py import tkinter as tk def main_screen(): root = tk.Tk() root.title("GUI Sample") root.geometry("640x480+100+100") root.resizable(True,True) root.configure(background='whi.. 2024. 3. 28.
파이썬 데이터분석 1 openpyxl로 엑셀 다루기 파이썬으로 엑셀 파일을 불러오고 데이터 다루는 가장 기본적인 라이브러리인 openpyxl에 대해 알아보도록 하겠습니다. [ 목차 ] 1. Openpyxl 설치 $ pip install openpyxl 2. 파일 생성 import openpyxl # 새로운 엑셀 파일 생성 wb = openpyxl.Workbook() # 새로운 시트 추가 sheet = wb.active # 셀에 데이터 쓰기 sheet['A1'] = '가나다' sheet['B1'] = '라마바사아' # 엑셀 파일로 저장 wb.save('example.xlsx') 3. 파일 열기 import openpyxl # 기존 파일 열기 wb=openpyxl.load_workbook('example.xlsx') #파일명 혹은 패스+파일명 입력 # she.. 2023. 7. 14.
파이썬보다 35,000배 빠른 언어 모조 (Mojo) 오랫만에 Python 관련 포스팅을 하나 할까 합니다. 최근에 Python보다 35,000배 빠른 언어가 나타났다는 기사를 봤습니다. 잉? 뭐지? 인터프리터 언어가 아닌건가? 속도로만 치면 빠른 언어는 많은데...무슨 소리지? 하는 궁금증이 들더군요. 오늘은 Python의 새로운 대안언어라는 타이틀을 들고 나온 "Mojo언어"에 대해 알아보도록 하겠습니다. Mojo � Mojo 🔥: Programming language for all of AI Mojo combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI mode.. 2023. 7. 13.
머신러닝(ML) 알고리즘 알고리즘 카테고리 분류 - 지도학습, 비지도학습, 강화학습 머신러닝 알고리즘은 크게 지도학습, 비지도학습, 강화학습으로 분류됩니다. 각 카테고리에 속하는 주요한 알고리즘들을 간단히 살펴보겠습니다. 1. 지도학습 (Supervised Learning) 지도학습은 입력 데이터와 정답(label) 쌍을 통해 학습하는 방법입니다. 주어진 입력에 대해 정확한 출력을 예측하는 모델을 학습합니다. 주요한 지도학습 알고리즘으로는 다음과 같은 것들이 있습니다: 1. 선형 회귀 (Linear Regression) 2. 로지스틱 회귀 (Logistic Regression) 3. 의사결정 트리 (Decision Trees) 4. 랜덤 포레스트 (Random Forests) 5. K-최근접 이웃 (K-Nearest Neighbors) 6. 서포트 벡터 머신 (Support Vector.. 2023. 5. 18.
Python 머신러닝 라이브러리 비교 : Scikit-learn, TensorFlow, Keras 및 PyTorch 파이썬은 기계 학습 및 데이터 과학에서 가장 인기 있는 언어 중 하나로 부상했습니다. 다양한 기능을 제공하고 다양한 요구를 충족하는 풍부한 머신 러닝 라이브러리 생태계를 제공합니다....라고 하는데. 한번 시작해볼까 하다가도 라이브러리가 너무 많이 존재해서 뭐가뭔지 잘 모르겠네요. 그래서 그 중 가장 유명한 네 가지 파이썬 머신러닝 라이브러리인를 비교해보고자 합니다. 1. Scikit-learn: Scikit-learn은 전통적인 기계 학습 작업에 널리 사용되는 라이브러리입니다. 데이터 전처리, 피쳐 추출, 모델 선택 및 평가를 위한 포괄적인 도구 세트를 제공합니다. Scikit-learn의 주요 기능은 다음과 같습니다: - 간단하고 직관적인 API를 제공하므로 다양한 수준의 전문 지식을 가진 사용자가 .. 2023. 5. 16.
파이썬 폴리움(folium) 라이브러리 시군구별 데이터 표시 시군별 평균수입/총수입 자료를 지도에 매핑해서 나타내보도록 하겠습니다. 아래의 자료는 시군별 평균수입/총수입 자료입니다. 한가지 추가로 필요한 파일이 시군구 지형자료입니다. 아래의 파일도 같은 프로젝트 폴더에 저장하고 실행합니다. import folium as g import json import webbrowser import pandas as pd g_map = g.Map(location=[37.4, 127], tiles='cartodbpositron', # tiles = 'Stamen Terrain', zoom_start=7) geo_data = json.load(open('skorea_municipalities_geo_simple.json', encoding='utf-8')) df = pd.rea.. 2023. 2. 13.
파이썬 Folium으로 주피터 노트북 없이 지도 표시하기..chatGPT가 도와줌 오늘은 파이썬의 Folium 라이브러리로 지도를 그려보도록 하겠습니다. 보통의 예제들이 주피터 노트북을 이용해서 지도 결과물을 표시하도록 되어있었는데, 불행히도 제 PC에는 아직 주피터 노트북 설치를 안했네요. 그래서 한참동안 그냥 결과물을 보려고 고생을 하다가 갑자기 그녀석이 생각났습니다. chatGPT~!!! ㅋㅋㅋㅋ 한번 이용해봐야겠습니다. 첨엔 folium 결과를 matplotlib로 내보낼 수 있을까 하고 한참을 고민했는데, chatGPT도 실패를 했습니다. IPython을 깔기도 하고, 별의별 라이브러리를 다 갖다가 붙여놨는데, 결론은 이미지 파일로 만들어서 픽셀단위로 matplotlib에 뿌리더군요. 이건 좀 아니지 않나 싶어서 간단히 html로 만든 결과물을 브라우저로 자동으로 오픈시켜주는.. 2023. 2. 12.
파이썬으로 폴더 내 파일명 일괄 수정하기 특정 폴더의 파일 전체에 대해서 일괄 수정하는 기능을 구현해 보았습니다. add_string 함수는 파일명에 접두사와 접미사를 붙여서 출력하는 기능이고, change_string 함수는 파일명에 특정 문자열을 다른 문자열로 바꾸는 기능입니다. 우선은 파일명을 확인하는 부분까지만 구현하고, 실제 변경하는 부분은 주석 처리하였습니다. 사용하실 분은 해당 부분 주석 해제후 사용하세요. import os def add_string(path, prefix, suffix): for filename in os.listdir(path): name_only, ext = filename.split('.') # 파일명과 확장자로 분리 print(name_only, ext) new_name = prefix + name_onl.. 2022. 11. 5.
Python Dataframe 주요 함수 정리 Python의 주요 사용처가 엑셀, CSV 등의 데이터를 이용한 데이터 분석인데, 매번 함수를 찾아다니기 귀찮아서 한곳에 모아놓습니다. df=pd.read_csv('test.csv') df.to_csv('test.csv', index=False) df.head() df.tail() df.info() df.dtypes df.shape df.describe() df['나이'].describe() df['나이'].value_counts() # 컬럼 값 분포 df['나이'].value_counts().index # 시리즈 인덱스 df['나이'].value_counts().tolist() df['나이'].value_counts().reset_index() # 인덱스를 하나의 칼럼으로.. df['나이'].sort_.. 2022. 8. 22.
Python Dataframe 출력 시 생략(...)없이 출력하는 방법 Pycharm이던 Jupyter Notebook이던 Dataframe형태의 결과를 볼 때, 칼럼의 수가 많아지면 기본적으로는 중간이 ....으로 표시됩니다. 간단하게 확인만 할건데 매번 추가코드를 작성하기도 귀찮고.... 이럴 때 옵션 하나면 간단히 처리할 수 있습니다. # row 생략 없이 출력 pd.set_option('display.max_rows', None) # col 생략 없이 출력 pd.set_option('display.max_columns', None) 누군가에겐 도움이 되었길 2022. 8. 21.
Python matplotlib 마커(marker) 종류 matplotlib의 plot기능에서 색상/라인/마커의 종류에 대해 알아보겠습니다. import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'bo-') # 파란색 + 마커 + 실선 plt.xlabel('X-Axis') plt.ylabel('Y-Axis') plt.show() 2022. 8. 3.
Python 키보드로 소리내기 피아노 연주하기 키보드 입력에 맞추어 비프음을 내도록 하겠습니다. 이번 프로그램을 위해서는 비프음을 내도록 하는 windsound 모듈과 키보드 인풋을 받아들이는 pynput 모듈이 필요합니다. 그 중 windwound 모듈은 기본으로 내장되어있으니 pynput 모듈만 설치해주도록 합니다. 1. 라이브러리 설치 pip install pynput 2. pynput모듈 pynput 모듈에서는 on_press 이벤트와 on_release 이벤트에 대해 리스너를 통해 입력받는 방법이 있습니다. from pynput import keyboard def on_press(key): print('Pressed Key: %s' % key) def on_release(key): print('Pressed Key: %s' % key) if.. 2021. 10. 13.
파이썬 tkinter 로 둥근버튼(Round button) 구현하기 이전 포스팅의 투명한 배경에 이어, 둥근 버튼 구현하기를 알아보겠습니다. 요즘 tkinter와 kivy를 번갈아가며 사용해보고 있는데, 서로 장단점이 존재하네요. 어느것도 완벽한게 없는듯 합니다. tkinter는 둥근버튼이 없어서 별도로 구현해야 하는 반면 투명한 배경처리가 가능하고, kivy는 투명한 배경은 안되도 둥근버튼은 쉽게 구현이 되네요. import tkinter as tk root = tk.Tk() # root.attributes('-alpha', 0.3) # 앱 전체가 투명해짐 root.wm_attributes("-transparentcolor", "white") canvas = tk.Canvas(root, width=600, height=300, bg='white') canvas.grid.. 2021. 9. 26.
파이썬 tkinter 로 투명 배경 구현하기 한참 좋다고 다른 GUI라이브러리 공부할 땐 언제고, 투명 기능이 어려워서 다시 tkinter를 손대게 되네요. 아래는 Tkinter로 구현하는 투명 배경 예제입니다. import tkinter as tk root = tk.Tk() # root.attributes('-alpha', 0.3) # 앱 전체가 투명해짐 root.wm_attributes("-transparentcolor", "white")# 흰색을 투명하도록 지정 canvas = tk.Canvas(root, width=600, height=300, bg='white')# 배경을 흰색으로 지정 canvas.grid(columnspan=3, rowspan=3) instructions = tk.Label(root, text="Hello World",.. 2021. 9. 25.
파이선 kivy 시작하기4 - 파일 관리(file chooser) 파일관리 프로그램 예제입니다. ## File Chooser from kivy.app import App from kivy.uix.gridlayout import GridLayout class TopGridLayout(GridLayout): def selected(self, directory, filename): try: self.ids.image.source = filename[0] except: pass class TreeApp(App): def build(self): return TopGridLayout() if __name__ == '__main__': TreeApp().run() : cols:2 id:my_widget #FileChooserIconView: FileChooserListView: i.. 2021. 9. 25.
파이썬 kivy 시작하기 3 - 태양계 행성들이 가운데 태양을 중심으로 공전하는 모습을 구현해보겠습니다. import math from kivy.app import App from kivy.uix.widget import Widget from kivy.core.window import Window from kivy.clock import Clock import math Window.size = (900, 900) center_w = Window.size[0]/2 center_h = Window.size[1]/2 class Sun(Widget): pass class Mercury(Widget): pass class Vinus(Widget): pass class Earth(Widget): pass class Mars(Widget): pass cl.. 2021. 9. 25.
파이썬 kivy 시작하기 2 - kv 파일 분리 1. main.py from kivy.app import App from kivy.uix.gridlayout import GridLayout from kivy.uix.textinput import TextInput from kivy.uix.label import Label from kivy.uix.button import Button from kivy.uix.widget import Widget from kivy.properties import ObjectProperty class MyGridLayout(Widget): name = ObjectProperty(None) # 변수에 아무것도 할당하지 않도록 함 pizza = ObjectProperty(None) color = ObjectProperty(No.. 2021. 9. 24.
파이썬 kivy 시작하기 1 - Kivy란? 파이썬에는 tkinter, pyqt(pyside2), wxpython외에 Kivy라는 라이브러리도 있습니다. Kivy는 크로스 플랫폼 사용자 인터페이스의 신속한 개발을 위한 오픈 소스 파이썬 라이브러리다. 키비 응용 프로그램을 사용하면 리눅스, 윈도우에 사용하는 GUI 프로그램뿐 아니라 안드로이드, IOS 용 GUI도 개발할 수 있다고 합니다. PC에서는 SDL2와 OpenGL 을 사용해서 그래픽 API를 사용할 수 있고 모바일 환경에서 OpenGL ES (임베디드 시스템용 OpenGL)를 사용하여 균일하고 안정적인 그래픽을 표현할 수 있습니다. 그리고 MIT 라이센스이므로 무료로 사용하는데 제한은 없습니다. Kivy는 특이하게도 화면을 구성하는 kv파일과 로직을 구성하는 일반 py파일이 구분되어있습니다.. 2021. 9. 24.
파이썬 tkinter 로 만드는 PDF 텍스트 추출 프로그램 우선 PyPDF2 라이브러리 설치가 필요합니다. pip install pypdf2 app.py 파일을 하나 생성하여 아래와 같이 입력합니다. 여기에 로고로 쓸 images.png파일이 필요한데, 인터넷에서 적당한 파일을 다운받으시거나 첨부 파일을 사용하시기 바랍니다. import tkinter as tk import PyPDF2 from PIL import Image, ImageTk from tkinter.filedialog import askopenfile root = tk.Tk() canvas = tk.Canvas(root, width=600, height=300) canvas.grid(columnspan=3, rowspan=3) # logo image = Image.open('images.png').. 2021. 9. 23.
파이선 PySimpleGUI 예제 1. hello_world.py import PySimpleGUI as sg sg.Window(title="Hello World", layout=[[]], margins=(100,50)).read() 2. hello_psg.py import PySimpleGUI as sg layout = [ [sg.Text("Hello from PySimpleGUI")], [sg.Button("OK")] ] window = sg.Window("Demo", layout) while True: event, values = window.read() if event =="OK" or event == sg.WIN_CLOSED: break window.close() 3. Image_Viewer.py import PySimpleGU.. 2021. 9. 22.
파이썬 주피터 노트북 Extension 설치 1. npextensions 설치 pip install jupyter_contrib_nbextensions && jupyter contrib nbextension 2. 필요한 기능 선택 - Table of Contents: 자동 목차 생성기능 - Variable Inspector: 변수 값 검사기 ※ 설치 후 리프레쉬 필요 3. 결과 2021. 9. 15.
Python folium을 이용한 지도 불러오기 / 마커 표시하기 import folium as g g_map = g.Map(location=[34.5, 128], zoom_start=7) # tiles='Stamen Terrain', 'Stamen Toner', 'Stamen Watercolor' latlon=[ [33.452278, 126.567803],#제주 [37.56667, 126.97806], #서울 [35.17944, 129.07556], #부산 ] # 마커 marker = g.Marker([37.509671, 127.055517], # 마커를 찍는 과정이다. 해당 위치의 마커를 찍고 popup='campus seven', # 해당 마커의 이름을 넣어준다. icon = g.Icon(color='blue'))# 해당 아이콘의 색깔을 지정해준다. marker... 2021. 9. 5.
Python - 엑셀 자료 분석(셀 참조 with xlwings) 오늘은 KB 부동산시세 사이트에서 제공하는 데이터를 이용해 각 셀의 값을 참조하는 방법에 대해 알아보겠습니다. 테스트를 위해 엑셀은 서식을 없애고 숫자만 표시되도록 했는데요, 아래의 엑셀 차트에 대해 일정 범위별로 수식을 적용하여 색깔을 표시하도록 하는 방법을 알아보겠습니다. (물론 엑셀 활용 측면에서는 조건부 서식으로 지정하는 것이 더 간단할 수도 있습니다만, xlwings 공부하는 차원에서 봐주시기 바랍니다.) 1. 엑셀 매크로 추가 엑셀 파일의 이름은 pyxl.xlsm으로 매크로가 가능한 엑셀파일 형태로 저장해둡니다. 그리고 엑셀에서 Python 코드를 불러올 수 있도록 VBA를 작성해줍니다. Sub some_code() mymodule = Left(ThisWorkbook.Name, (InStrRe.. 2021. 2. 4.
Python - 엑셀에서 파이썬 매크로 사용하기(xlwings 설치) 현대 사회에서 엑셀의 지위는 정말... 이걸 빼고서는 업무를 상상할 수 없을 정도로 막강한데요,,, 한가지 아쉬운 점이 매크로를 작성할 때 Visual Basic을 사용한다는 것입니다. 그게 무슨 아쉬운 점이냐 하실 수도 있는데, VBA라고 하는게 처음에는 쉽다고 해서 접근해보면 딱히 쉽진 않죠. 프로그래머들도 어렵다는 VBA니까요. 물론 프로그래머는 VBA를 집중해서 파기보다는 다른 자신만의 언어(Java, Python, C# 등)가 있으니까 그럴 수도 있겠지만요. 하지만 파이썬은 전문 프로그래머들 뿐만 아니라 일반인들도 많이 쓰는 언어가 되어가고 있습니다. 우선 쉬우니까요. 물론 깊이 들어가면 결국 비슷하게 어려운 부분이 있지만,,, 개인적인 느낌으로는 VBA보다 쉽습니다. 가독성이 너무 좋습니다. .. 2021. 2. 3.
Pyside2 import sys import os from PySide2 import QtUiTools, QtGui from PySide2.QtWidgets import QApplication, QMainWindow from PySide2.QtCore import Slot, Qt class MainView(QMainWindow): def setupUI(self): global UI_set UI_set = QtUiTools.QUiLoader().load("./test.ui") self.setCentralWidget(UI_set) self.setWindowTitle("UI TEST") self.setWindowIcon(QtGui.QPixmap("./images/clock.ico")) self.resize(500, 270.. 2020. 12. 29.
파이썬 matplotlib 차트 그리기 예시 matplotlib를 활용하여 그래프 그리는 예시입니다. 툴은 spider를 이용하여 그려보겠습니다. import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl x = np.random.rand(100) y = np.random.rand(100) plt.plot(y, 'b:') plt.title('1Green Solid Line') plt.title('2Blue Dotted Line') plt.ioff() plt.figure() plt.plot(y, 'g-') plt.title('3Green Solid Line') plt.show() plt.ion() plt.figure() h=plt.plot(y, 'g-') plt.getp(h.. 2020. 8. 17.
wxPython Grid에 pandas dataframe 출력하기 import wx import wx.grid as gridlib import os import psycopg2 import pandas as pd class MyFrame(wx.Frame): def __init__(self): #-------- 1. GUI 초기화 wx.Frame.__init__(self, parent=None, title="DB to Table") self.SetSize(1020, 600) self.mainPanel = wx.Panel(self) self.vtBoxSizer = wx.BoxSizer(wx.VERTICAL) # 전체 레이아웃 self.vhBoxSizer = wx.BoxSizer(wx.HORIZONTAL) # 전체 레이아웃 self.query_txt = wx.TextCtrl.. 2020. 6. 23.
반응형