반응형

PYTHON 22

[BOJ][1002번] - 터렛 (python)

안녕하세요 Dibrary입니다. 이번 문제는 백준알고리즘의 [1002번 - 터렛] 입니다. 제가 이 문제를 풀 때 처음에 쓸데없는 방향으로 생각이 빠져버렸었습니다. 그래서 아주 거지같은 코드가 탄생하기 시작했죠. 처음에 접근했던 생각 원점 위치별로 구분을 해야겠구나, 해당 구분 하에서 원점간의 거리와 반지름의 거리를 비교해야겠구나, 위 생각처럼 풀면 코드가 어떻게 나오냐면요... 이미 조건문만 너무 많죠? 조건문 안에 조건문이 또있고... 근데 또 위 골격에 맞춰서 작성하면 통과가 안 됩니다. 반례가 있는 것이죠... 그래서 생각을 해 보았습니다. 왜 이렇게 코드가 길어질까 뭐만 따지면 되는 것인가? 핵심은 원의 중심과의 거리, 반지름 만 고려하면 되는 것이었습니다. 처음에 원의 x, y 별로 다른 것을..

파이썬으로 Redis 데이터 베이스 값 읽고 쓰기

안녕하세요 Dibrary입니다. 이번에는 Python을 이용해서 Redis의 값을 읽거나 써보겠습니다. 우선 윈도우에 설치한 Redis를 실행 해 놓겠습니다. 파이썬에서 Redis를 사용하려면 Redis모듈을 설치 하셔야 합니다. pip install redis 를 입력해서 설치 하시면 됩니다. 저는 이미 설치를 해 둬서 already satisfied 라고 나오네요. 그리고 파이썬에서 코드를 아래와 같이 작성 했습니다. 실행을 해 보겠습니다. 우선 print문까지 진행이 완료 되었기 때문에 Redis안에 들어갔을거라고 생각해야겠죠? 과연 Redis안에 들어 있는지 확인을 직접 해 보겠습니다. 엇? 입력을 했는데 안 나옵니다. 네 이는 위에 파이썬 코드에서 db=1 이라고 해 놓았기 때문에 못 읽는 것입..

파이썬 데이터 분석 준비! - Numpy배열 다루기 - 3(배열 응용하기)

안녕하세요 Dibrary입니다. 이번에는 그동안 배운 Numpy배열을 응용해 볼 것입니다. Numpy를 사용할 때 중요한 점은, 배열 단위로 연산을 한다는 것 이게 중요합니다. Numpy배열로 만들어놓고, 기존 list 처럼 계산 하면 Numpy의 장점이 드러나지 않습니다. 먼저 임의의 Numpy배열을 만들고, Numpy배열에 곧바로 비교 연산자를 사용하니 True, False로 결과가 나오죠? True인 것만 데이터가 있다는 의미 입니다. 그러면, 이렇게 True / False로 나오는 결과를 활용할 수 있습니다. 예를 들어, 각 회사마다 매출액이 Numpy배열로 만들어져 있다고 할 때, 특정 회사의 매출액만 볼 수 있는 것입니다. 바로 이렇게요. 지금 names == 'samsung' 문장은 위에서 ..

파이썬 데이터 분석 준비! - Numpy배열 다루기 - 2(배열 데이터 다루기)

안녕하세요 Dibrary입니다. 저번 글에 이어서 이번에는 배열의 데이터를 다뤄보겠습니다. 혹시 Numpy배열을 만드는 방법을 모르신다면 이전 글을 참고해 주세요. 파이썬 데이터 분석 준비! - Numpy배열 다루기 - 1(객체 만들어보기) 안녕하세요 Dibrary입니다. 최근 화두가 되는 데이터 분석 및 빅데이터 등등 데이터가 들어가는 것에 파이썬이 안쓰이는 곳이 없습니다. 데이터를 다루려면 Numpy와 Pandas를 다룰 줄 아는 것이 거진 dibrary.tistory.com Numpy를 사용하려면 당연히 import부터 해 주셔야 합니다. 먼저 데이터의 자료형을 바꿔보겠습니다. astype 함수를 사용해서 자료형을 입력하면, 구성 데이터가 해당 자료형으로 변경됩니다. 자료형은 Numpy 자료형을 써..

Dixon Q test - 특이치 식별 및 제거, 파이썬으로 구현

안녕하세요 Dibrary입니다. 이번 시간에는 데이터 분석을 하기 전에 데이터의 이상치(outlier)를 제거하는 Dixon Q test를 파이썬으로 구현 해 보겠습니다. 먼저, Dixon Q test에 대해 알아보겠습니다. Dixon Q test는 이상치를 제거할 때 사용할 수 있습니다. 식은 간단하게 아래와 같이 나타낼 수 있고, 여기서 gap은 이상치(outlier)로 추정되는 값, 그리고 그 값과 가장 가까운 숫자간의 절대값 '차이' 입니다. range는 전체 데이터의 (최대값 - 최소값) 차이 입니다. 이렇게 계산된 Q값이 table의 Q값보다 크다면 이상치(outlier)로 추정되는 값이 이상치가 맞다는 결론을 내립니다. 신뢰도를 90, 95, 99로 다르게 적용 할 수록, table의 Q값은..

Anderson-Darling 통계 - 정규성 검정, 파이썬으로 확인하기

안녕하세요 Dibrary입니다. 이번 시간에는 파이썬으로 Anderson-Darling 통계량을 확인해 보는 방법을 소개하겠습니다. 먼저, Anderson-Darling 통계를 보기전에, 먼저 알아야 할 사전 지식은 3가지가 있습니다. 귀무가설 대립가설 P-value 통계를 공부 해 보신 분이라면 당연히 알 수 있겠지만, 모르는 분들을 위해 간략히 소개만 해 보겠습니다. 귀무가설(H0) 쉽게 표현하자면 '차이가 없다'라고 주장하는 가설이라고 보시면 됩니다. 그리고, 이 가설이 맞지 않음을 즉, '차이가 있음'을 통계학적 증거로 증명하면 됩니다. 대립가설(H1) 귀무가설의 반대입니다. '차이가 있다' 라고 보통 주장하는 가설입니다. 귀무가설의 기각 여부가 대립가설의 통계학적 결과로 판별 됩니다. P-val..

[쓰면서 익히는 알고리즘과 자료구조] 나만의 알고리즘 디비 만들기

개발자라면 뗄레야 뗄 수 없는게 '자료구조'와 '알고리즘'이다. 그 중에 이 책은 제목 중 '알고리즘'에 강점이 있는 책이다. 알고리즘은 말 그대로 '문제를 푸는 방법'이다. 초,중,고등학교를 기본교육으로 들은 사람이라면 '수학' 과목을 잊을 수 없을텐데 수학 문제를 푸는 것과 같은 이치인 셈이다. 반드시 생각을 해봐야 하고, 단순히 배운 개념만 가지고는 문제를 푸는데 써먹을 수 없었던 기억이 있을 것이다. 알고리즘도 몇몇 형식화된 그리고 유명한 것들이 존재한다. 문제는 그것들을 아주 완벽히 암기를 했다 하더라도? 실제 주어진 문제에 해당 알고리즘을 사용해야 하는지 아닌지를 판별할 수 없다. 그럼 이 책은 그 방법을 알려주는가? 그것도 아니다. 그러나, 이 책의 강점은 내 생각을 정리할 수 있는 하나의 ..

독서/서평 2022.02.21

파이썬으로 구현해 확인하는 OPCUA통신 - Client편

안녕하세요. Dibrary입니다. 이번에는 OPC통신이라는 것을 파이썬으로 해보겠습니다. 먼저 OPC통신은 modbus통신처럼 산업현장에서 사용하는 프로토콜 중 하나인데요, 최근에는 OPC를 사용해서 장비별 구분 없이 데이터만을 주고받는데 초점을 두고 있습니다. 저 역시 OPC로 통신하는 프로그램을 만들어 보았고, slave역할의 장비에서 값이 바뀌는지, 써지는지 확인을 파이썬으로 진행했었습니다. 참고로 Client는 OPC서버의 값을 '읽어서 확인'할 수 있는 것을 말합니다. 저는 순간순간 확인하기 쉽게 jupyter를 사용하겠습니다. 혹시 설치가 안 되신 분들은 아래의 글 참고하시면 됩니다. Python으로 GUI(PyQt5) 구현하기! - 처음이니까 anaconda 설치부터 환경변수까지 한 번에~ ..

[Flask] 파이썬으로 웹 실행해보기 - Flask 처음!

안녕하세요, Dibrary입니다. 파이썬으로 온갖것을 다 할 수 있는데, 그 중에 웹도 할 수 있습니다. 물론 국내에서 웹은 대다수 JAVA를 이용해서 하지만요. 신생 기업 같은 경우들은 파이썬을 이용한 Django나 Flask를 쓰곤 합니다. Django는 Flask보다는 배워야 하는 내용이 꽤 많아서 저는 간단한 테스트 용으로는 항상 Flask로 만들어서 확인하곤 합니다. # Flask 설치 이번에도 어김없이 jupyter lab에서 실행 해 볼 겁니다. Flask 실행은 Pycharm이라는 환경이 더 좋지만, 지금은 소개만 할 것이니까 괜찮습니다. 먼저 터미널을 열고 pip install flask 를 입력하세요. 그러고 시간이 좀 지나다보면 설치가 됩니다. 설치가 되었는지 어떻게 확인 하냐구요? ..

[PyQt5]버튼으로 팝업 띄워보기! - QMessageBox

안녕하세요, Dibrary입니다. 이번에는 Qt Designer를 써서 Button으로 이것 저것을 해 볼 겁니다. 버튼으로 해 볼 수 있는게 뭐가 있을까요? 버튼을 눌러서 확인하는 것 버튼을 눌러서 저장하는 것 버튼을 눌러서 끄는 것 버튼을 눌러서 새로운 화면으로 넘어가는 것 버튼을 눌러서 시작하는 것 네 간략하게 몇 개 적어봤지만, 실제로도 엄청 많은 걸 할 수 있죠? 당장 마우스 가지고 파일이나 폴더를 돌아다녀보면서 무엇을 할 때 클릭을 하는지 확인 해 보세요. 제 개인적인 생각인데, GUI의 핵심은 버튼이 아닐까 싶습니다. 그래서 Button을 가장 먼저 해보기로 정했습니다. # 버튼을 눌러서 팝업이 뜨게 하기 인터넷 여기저기를 돌아다니시다가 버튼을 잘못 누르면 '경고' 혹은 '금지'팝업이 뜬 경..

반응형