파이썬 pandas 라이브러리로 계산을 빠르게 하는 법: SQL을 배워라
·
데이터리안 SQL 공부
- 개요저는 다양한 데이터를 분석, 시각화할 때 파이썬을 사용합니다.정확히는 데이터 분석, 시각화의 과정에서 pandas, numpy, matplotlib 등 다양한 파이썬 라이브러리를 쓰는거죠. 이 중 pandas는 정형 데이터를 읽고, 전처리, 후처리 작업에 쓰입니다.요즘 데이터리안에서 SQL을 배워보니 SQL에서 쓰는 명령어를 알게 되었고 대체로 이 기능은 pandas에 구현되어 있고 빠릅니다. -속도 비교 1: 기상 자료1. 자료 설명 및 목표 설정첫번째 속도 비교로 기상관측 일평균 자료를 다운로드 받았습니다.일별로 다양한 기상 변수가 저장되어 있고, 기간은 2007년부터 2025년까지입니다.자료의 행은 7000~8000줄 정도 됩니다.이 자료로 연평균 평균기온을 구해봅시다.참고로 가장 오른쪽을 ..
[데이터리안 40기 입문 2주차 과제] 독후감: RFM 고객 세분화 분석이란 무엇일까요
·
데이터리안 SQL 공부
데이터리안 SQL 40기 입문 강의 2주차 과제아래 링크의 글을 읽고 독후감 쓰기라 생각해도 무방RFM 고객 세분화 분석이란 무엇일까요? - 나만의 요약회사는 상품을 만들고, 사용자가 이 상품을 쓰면 이익(반드시 돈이 아닐 수도 있음)이 발생함이 과정에서 회사는 상품을 구매한 사용자의 주문 기록을 데이터베이스에 저장할 수 있음그러면 주문 기록을 이용해서 다음 구매를 유도하기 위한 사용자별 맞춤 전략을 짤 수 있음예를 들어 가끔 오는 사람에겐 오랜만에 왔으니 할인 쿠폰을, 자주 구매를 하는 사람에겐 특별 혜택을 주는 등 사용자의 특성에 따라 다른 전략을 쓸 수 있음결국 이는 사용자를 분류하는 문제인데 이러한 사용자 분류를 마케팅 쪽에선 customer segmentation이라고 부르는 것 같음(이공계생이..
[python][사과게임 매크로 만들기] 3. CLI 기반 사과게임 매크로 코드 작성
·
프로젝트/사과게임 매크로 만들기
- 개요지금까지 사과게임 매크로 코드의 확장자는 ipynb였습니다.ipynb 확장자에서는 코드 cell이 여러 개이므로 이를 한 번에 실행하기 위해 vscode의 [run all] 버튼을 눌렀습니다.기능 구현만 할거면 이런 식으로 코드를 작성해도 상관없지만 하나의 프로그램으로 만들기 힘듭니다. 예를 들어 프롬프트창에서 매크로 프로그램을 실행하고, 조작이 가능하게 만들려면, 즉 Command Line Interface(CLI)로 코드를 실행 및 조작하게 만들려면 python [코드이름.py]를 쳐서 코드를 실행한 뒤 특정 버튼을 눌렀을 때 사과게임 매크로가 동작해야합니다. 이번 포스트에서는 CLI 기반으로 프로그램이 돌아가도록 사과게임 매크로 코드를 리팩토링해보겠습니다. - 클래스 기반 코드 작성 이유저번..
[python][사과게임 매크로 만들기] 2. 사과게임 매크로 코드 작성, 실행
·
프로젝트/사과게임 매크로 만들기
- 개요사과게임 시작화면의 숫자를 인식해서 numpy 배열로 저장했으니 이제 사과게임 매크로를 만듭시다. - 숫자 합 10 확인 및 제거사과게임에서는 마우스로 드래그한 영역의 사과들의 숫자합이 10일 때 그 사과들이 지워집니다.우린 숫자를 numpy 배열에 저장했으니 numpy 배열에서 특정 범위의 합이 10인 경우를 찾으면 됩니다.그 다음 이 특정 범위의 위치를 내 모니터의 좌표로 변환하여 마우스를 드래그하면 됩니다. 합이 10이되는 영역을 찾는 알고리즘은 여러가지가 있지만저는 왼쪽 위부터 오른쪽으로 한 줄씩 합이 10인 영역을 찾겠습니다."""합이 10인 위치를 제거하는 기능을 10번 시행하기 위해 _로 열번 돌립니다.특정 영역이 0이 되면서 없어지면 합이 0이 될 수 있는 영역이 새로 생길 수 있으..
[python][사과게임 매크로 만들기] 1. 이미지 인식, numpy 배열로 변환
·
프로젝트/사과게임 매크로 만들기
- 개요사과게임 매크로를 만들어봅시다.아래 유투브 쇼츠는 제가 가장 처음에 만든 사과게임 매크로입니다.지금은 코드 리팩토링을 해서 코드 로직이 좀 다르긴 합니다만 아무튼 사과게임 매크로를 만들어 봅시다.가장 먼저 할 일은 사과게임을 시작한 뒤 모니터 화면을 캡쳐해서 어느 위치에 어떤 숫자가 있는지에 대한 정보를 저장하는 것입니다. "> - 사과 안의 숫자 인식1. 사과게임 화면 저장사과게임을 실행한 뒤 화면을 스크린 캡쳐해서 png파일로 저장합시다.제가 저장한 사과게임 화면은 아래와 같습니다. 2. 숫자 인식파이썬 코드의 숫자 인식 과정에서는 첫째로 모니터 화면을 스크린샷으로 저장한 다음 1부터 9까지의 그림(imgs.zip 다운로드, reset.png, start.png은 나중에 쓰임)이 스크린샷의 어..
Baroclinic development(경압발달) 이해하기: 2. 대기의 파동은 보강간섭으로 발달한다.
·
대기과학/개념
- 개요저번 포스트 내용을 복습합시다.대기에서는 연직방향, 수평방향으로 파동이 생길 수 있습니다.여기서 파동이 어떤 이유로 생기는지는 다루지 않았다는 것을 명심해야 합니다.저는 공기덩어리가 갑자기 움직이게 되었다 이런 식으로 표현했지 원인에 대해서는 말하지 않았거든요. 제가 이 부분을 처음 공부할 때는 파동의 생성, 발달, 소멸처럼 단계별로 왜 설명을 안해주나라는 의문을 품었었는데5판의 챕터 이름을 보면 baroclinc "development "로 애초에 이름부터가 "발달"을 공부하는 챕터입니다. 그럼 baoclinic이란 단어는 일단 무시하고, 이번 시간에는 대기의 파동이 어떻게 발달하는 건지 알아봅시다. - 일기도에서 대기의 파동을 확인하기기상청의 지상일기도를 보고 대기의 파동을 x-y 그래프로 그..
Baroclinic development(경압발달) 이해하기: 1. 파동(wave)부터 이해하자
·
대기과학/개념
- 이번 시리즈의 개요: Baroclinic development(경압발달) 이해하기대기과학을 전공하면 3~4학년 즈음에 대기역학이란 전공을 공부합니다.대기역학을 공부할 때 가장 난해했던 개념은 Baroclinc instability(경압불안정)였습니다. 참고로  대기역학 홀튼책 4판 기준으로 챕터 6~8, 5판으론 챕터5~7에 해당하는 내용 같고,4판에서는 챕터 8 제목에 baroclinic instability라는 단어가 있었는데 5판 챕터 7에서는 baroclinic development로 바뀌었습니다.4판 챕터 8을 이해하려면 챕터 6, 7을, 5판 챕터 7을 이해하려면 챕터 5, 6을 이해하고 있어야 합니다. 이 챕터에서는 여러 지배방정식이 나와서 혼란한 와중에 갑자기 이런저런 가정을 하고 파동..
[python][지하철 승하차 자료] 회사원은 언제 연차를 낼까? 2. 연차를 내는 시기
·
여러가지 데이터/프로그래밍 & 분석
- 요약- 개요저번 포스트에서 출근시간/퇴근시간에 지하철 인원수가 많으면 연차를 쓴 사람이 적다라는 가정을 하고 관련 수치를 일(daily) 단위로 정리했습니다.이 다음은 무엇을 해야할까요? 아마 이 질문에 대답하기 어려울 것인데 그 이유는 제가 질문을 막연하게 했기 때문입니다.저는 단순한 호기심에 분석하는 것이고 구체적인 목표가 없거든요. 회사에 다니다보면 막연하게 이런 느낌의 업무를 맡는 분도 있을 것 같은데 이럴 땐 쉬운 것부터 하면 됩니다.예를 들어 잘 쓴 글에서는 독자가 이해하기 쉬운 내용부터 어려운 내용의 순서로 나옵니다.분석도 이처럼 쉬운 것부터 하면 되는데요.여기서 쉽다는 건 독자가 이해하기 쉽다기보다 "기술적으로 쉽게 분석할 수 있으며 내가 이해가 쉬운 것을 의미합니다(보통 내가 이해하기..
[파이썬 코딩 환경 세팅하기] 5. 파이썬 가상환경에 라이브러리 설치하기
·
프로그래밍/파이썬
- 개요가상환경을 만드는 법으로 포스트를 썼지만 정작 중요한 라이브러리 설치하는 법을 설명하지 않았네요.파이썬으로 하는 작업에 따라 다른 버전의 파이썬이나 라이브러리가 필요할 수 있습니다.A 작업을 할 땐 a 가상환경을 활성화하고, B 작업을 할 땐 b 가상환경을 활성화하고 그런 식이죠. 참고로 라이브러리란 특정 작업을 처리하기 위해 만든 코드(함수, 클래스 등) 모음집입니다.이러한 코드들을 폴더구조로 잘 정리한 걸 패키지라고 부르는데 라이브러리, 패키지란 단어를 엄청 구분해서 쓰진 않는 것 같습니다.- 요약전 일단 가장 빠른 pip로 깔아보고 호환성 문제 생기면 conda로 설치합니다.""" 가상환경 활성화특정 이름의 가상환경을 활성화하지 않고 conda activate만 쳐서 anaconda만 활성화..