반응형

파이썬 69

[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값은..

[전문가를 위한 파이썬] 사소한 파이썬의 특장점까지 짚어보자

흔히 파이썬은 '쉬운 언어'라고 많이 알려져 있다. 지금 유행하는 코딩열풍을 밑에서부터 보면, 초등학교부터 코딩 개념을 가르치는데 블럭 형태의 놀이같은 것이나 혹은 파이썬을 배운다. 그만큼 쉽다는 인식이 많은데 사실 어떤 언어든 '절대치'는 존재한다고 생각한다. C/C++언어는 초기에 어렵지만 나중에 능숙해지면 초기의 장벽만큼 어렵게 느껴지지는 않을 수 있는데, 파이썬은 그 반대로 초기에는 쉬워보이나 나중에 만나는 것들의 장벽이 초기보다 어렵다는 것이다. 개인적으로는 이 책을 보기 전에 이미 파이썬의 난이도는 쉽지 않다는 것을 알고 있었다. 특정 개발 도중에 파이썬을 C++과 연동해야 했었는데, 아주 어려웠었다. C++에서 사용하던 메모리 관리 등을 파이썬에서도 해보니 오히려 C++이 더 쉽게 느껴질 정..

독서/서평 2022.03.18

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

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

파이썬 데이터 분석 준비! - Numpy배열 다루기 - 1(객체 만들어보기)

안녕하세요 Dibrary입니다. 최근 화두가 되는 데이터 분석 및 빅데이터 등등 데이터가 들어가는 것에 파이썬이 안쓰이는 곳이 없습니다. 데이터를 다루려면 Numpy와 Pandas를 다룰 줄 아는 것이 거진 필수가 되었죠. 그래서, Numpy를 사용하는 방법을 간단하게 정리 해 두고자 합니다. 먼저 따라해보기 위해서는 Jupyter를 실행 해 주세요. 그리고, 터미널을 열어서 pip install numpy를 해 주시면 됩니다. 그러면 알아서 설치가 완료 됩니다. 이제 준비는 끝났습니다. 본격적으로 Numpy를 익혀보겠습니다. 제일 먼저 numpy모듈을 불러들어와야 합니다. 아래와 같이 입력 해 주세요. 위 입력에서 as np는 'numpy라는 명칭을 np라는 별칭으로 앞으로 사용하겠다~' 고 컴퓨터에게..

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

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

독서/서평 2022.02.21

[파이썬 클린코드] 쉽다고 알려진 파이썬도 막 사용하면 안 된다.

파이썬을 자주 사용하기 시작하면서 막연하게 걱정이 되었던 부분이 있었다. 바로 '가독성'이다. 또한, 해당 코드가 기능은 하지만 기능을 위한 필수요소만 있는 것인지, 아니면 불필요한 과정으로 덮여있는지를 알아보고 싶었다. 제목부터 느껴지지만, '클린코드'로 작성하기 위해서 좀 더 나은 방법, 객체지향에 초점을 맞춘 방법을 소개한다. 클린코드에 대한 개념을 먼저 소개하고, 파이썬이라는 언어의 특징 (pythonic)을 살려서 코드를 작성하는 방법을 몇 가지 소개한다. 이 책에서 generator와 context manager등의 개념을 알게되었고, 기존에 구현한 코드가 너무 구현에만 빠진 나머지 기능이라는 본질 자체에서 좀 멀어져 있다는 것을 깨닫게 되었다. 물론 짤막한 코드가 무조건 좋은 것은 아니지만,..

독서/서평 2022.02.18
반응형