Coding (267)


의도와 많이 달라졌지만 Python으로 ARIMA를 해보자

의도와 많이 달라졌지만 Python으로 ARIMA를 해보자

그… 시계열 데이터를 아십니까? 가로축이 시간인 데이터라고 보면 된다. 예를 들자면 나는 오늘 얼마나 걸었는가, 어제랑 비교해서는 얼마나 걸었는가, 얼마나 퍼잤는가, 오늘 삼전은 몇만전자인가(…) 뭐 그런거 말이다. 시계열의 대표적인 예시가 주식이다. 아니 오늘 판다스 통계분석을 하는데 diff()가 나온거임. 이게 뭐냐면 차분이거든요? 이 차분이 뭐냐면... 시계열 데이터는 슈뢰딩거도 무덤에서 기함할 정도로 평균과 분산이 아주 널을 뛰기때문에 이걸 정상화할 필요가 있는데, 그 정상화 절차다. 그리고 ARIMA에서 I를 맡고 있지. 그럼 AR이랑 MA는 뭔데요? AR은 자기상관이고 MA는 이동평균이다. 이동평균은 또 뭔데요? 12345 있으면 123 234 345 이런식으로 범위를 옮겨가면서 평균 내는 ..

loc, iloc, at, iat

loc, iloc, at, iat

Pandas를 쓰시는 분들이라면 한번쯤 보셨… 아냐 이건 한번 본 정도가 아니라 판다스 만질 일 있으면 엄청 써보는거임… 특히 저 앞에 두개요. 진짜 엄청 써봅니다. 근데 둘이 무슨 차이인지 모르시겠다고? 그럼 잘 오셨음.시리즈, 그리고 데이터프레임시리즈가 모이면 데이터프레임이 된다는 건 아실것이다. 그 대충 문발 생각하시면 된다. 구슬을 꿰어서 세로로 한 줄(시리즈)을 만들고, 그걸 가로로 엮어서 문발(데이터프레임)을 만든다. 그리고 저 네개를 데이터프레임에서 뭐 찾을 때 쓰는데 어떨 때 쓰느냐…loc, iloc이 두개는 데이터프레임에서 행단위로 찝을 때 사용한다. 그니까 저걸 쓰면 어떻게 나오냐... 그 비즈 문발 보시면 세로로 꿴 구슬을 가로로 엮어서 2차원 평면을 만들잖아요? 그 문발을 보면 구슬..

넘파이 하는 김에 빙고 만들기 신공

쉬는시간에 시간 애껴서 만들었음… 아니 근데 솔직히 재밌어보이지 않습니까?import numpy as npimport random일단 이거 돌리려면 넘파이가 설치되어 있어야 한다. 일단 개발은 3.10에서 하긴 했는데 뭐 버전타는건 없겠지… 있으면 큰일난다… 나 3.10에서만 돌려봄… # OOP 서타일은 클래스에서 시작이여class Bingo: # 기본값은 5*5(기본 범위는 25) def __init__(self, size = 5, n = 25): self.size = size self.bingo_max = n self.bingo_range = range(1, self.bingo_max + 1) self.board = None s..

안티그래비티를 써보았다.

안티그래비티를 써보았다.

안티그래비티가 뭐냐고요? https://antigravity.google/ Google AntigravityGoogle Antigravity - Build the new wayantigravity.google이건데, 얘가 있으면 바이브 코딩을 코드 복붙 없이도 할 수 있다. 완전 개신세계임 진짜로.제미나이 구독을 안 했기 때문에 최대한 디테랄을 해주도록 하겠다… 지시문의 내용은 1. 감마펑션 코드 위치(감마펑션이 따로 있음)2. 감마펑션이랑 팩토리얼(재귀함수)를 어떻게 OOP 서타일로 구성할건지 이냥반이 클래스 때려박는다고 다 OOP인 줄 아네 3. 팩토리얼, 감마펑션의 처리 조건(감마 n = n-1!인 것, 그리고 분기) 이렇게 들어가있다. 요로코롬 애가 생각을 한다. 필요한 패키지요? 알아서 다 설치..

힙 정렬을 구현해보자

힙 정렬을 구현해보자

일단 이거 어제 부트캠프에서 한거고 깃헙에는 코드가 올라가있음. 근데 왜 글은 오늘 올리느냐... 두 가지 이유가 있는데 일단 요즘 레전자 DLC 미느냐고 바쁘고, 미디움은 하루에 글 세개인가 제한이 있습니다… 목욜에 제한 넘겨서 하나 금욜에 올렸는데 이것도 금욜에 올렸다간 제때 못올라감…힙 정렬을 하기 위해서는 힙 트리에 대해 먼저 알아야 하는데, 이거는 트리는 트리인데 일단 완전 이진 트리(자식이 최대 두 개인 트리)이다. 그리고 항상 루트에 최댓값(최대 힙) 혹은 최솟값(최소 힙)이 들어가있어서 최댓값 찾기는 개빨리끝남. 여기서는 어떻게 구현했냐면1. 트리 뼈대를 만든 다음(리스트를 주면 리스트 길이에 따라서 완전 이진 트리가 생성됨)2. 그 트리 안에 있는 리스트를 힙 트리로 만들건데(최대 힙),..

BFS, DFS

트리를 탐색하는 방식이다. 방식인데 이제 하나는 수직으로 가고(DFS), 다른 하나는 수평으로 가는(BFS) 방식이다. 둘 다 공통적으로 없는 길을 만들어서 가지 않고, 모든 트리를 순회하는데 그냥 순서가 다소 다른 것 뿐이다. 참고로 오늘 올리는 건 특정 노드를 찾아가는 게 아니라 전체 순회다. 특정 노드만 찾는건 나중에 레전자 DLC 다 밀고 시간 좀 되면 해드림… 지금 DLC 미느냐고 정신없다…공통: 트리 생성# 트리도 연결 리스트로 만든다...# 그래서 노드class Node: def __init__ (self, _value): # 관리할 값 self.value = _value # 부모 self.parent = None # 자식 ..

이중 연결 리스트

이중 연결 리스트

전에 연결 리스트를 올렸었는데, 이게 이중 연결 리스트가 또 있다. 이건 뭐냐고? 연결 리스트인데 내 위로 내 밑으로 뭐가 있는지를 다 갖고 있는 연결 리스트다. 머리꼬리가 다 있는 게 특징. 노드# 노드class Node: def __init__(self, _value): # 값 self.value = _value # 이전/다음 노드 self.prevnode = None self.nextnode = None여기는 뭐 볼 거 없고, 노드가 담고 있는 것들만 있음… 진짜는 지금부터입니다, 휴먼. 이중 연결 리스트# 이닛def __init__(self): # 장암역(머리?) self.head = Node(0) # 석남역(꼬리..

제모옥은 스택과 큐로 하겠습니다 근데 이제 연결 리스트를 곁들인

https://koreanraichu.tistory.com/798 스택과 큐를 구현해보자스택여러분들 한번씩은 다 그런 경험이 있을 것이다. 다른 사람이랑 장을 보건, 혼자서 장을 보건 집에 오면서 먹을 간식을 하나 사게 되는데, 계산을 마치고 간식을 먹으려고 봤더니 에엥? 간식koreanraichu.tistory.com여기서 간단하게 스택과 큐를 구현해봤는데, 이걸 연결 리스트로도 한번 구현해보자. 제목이 익숙하다고요? 록셰프 맞음... 요즘 냉부에 안나오시는데 돌아와요 록셰프... 어록 남겨줘요...스택기본 골자는 다들 아시죠? 아이 이전 글 읽었으면 알 수 있어... 거기에 다 있어... # 노드class Node: def __init__ (self, _value): # 값 ..

더 복잡해져서 돌아온 연결 리스트

https://koreanraichu.tistory.com/312 Python으로 연결 리스트 구현하기https://koreanraichu.tistory.com/311 연결 리스트 JS는 토이프로젝트 해야 하는데 뭐 또 생각나면 만들겠음... 솔직히 프론트엔드가 쓸 일은 없겠지만 알아서 나쁠거 없잖아요? 아무튼. 배열은 만들 때 메koreanraichu.tistory.com부트캠프 들으면서 얘를 구현해 볼 기회가 또 생겼음. 전에 했던것보다 훨배 복잡한거라 들고 왔습니다. 아마 다음에 올리는건 트리랑 그래프정도?# 노드class Node: # 뾰로롱 def __init__ (self, _value): self.value = _value self.nextnode = No..

파스칼의 삼각형

https://koreanraichu.tistory.com/802 백준 11050번 풀이문제https://www.acmicpc.net/problem/11050이항계수 내놔! 드리겠습니다! 필요없어! 풀이일단 이항계수가 뭐냐...조합론에서 이항 계수(二項係數, 영어: binomial coefficient)는 이항식을 이항 정리로 전개했을koreanraichu.tistory.com여기서 이항계수 얘기를 했는데, 이항계수 하면 따라오는 게 바로 파스칼의 삼각형이다. 이거 말하는거 맞다. 파스칼의 삼각형-규칙1. 꼭대기에는 1이 하나 있다.2. 그 밑으로는 양 옆의 숫자를 더해야 하는데 두번째 줄은 더할게 없어서 1 두개다. 3. 그 밑으로는 양 사이드에 1을 쓰고, 순차적으로 윗줄 양 옆의 수를 더한다. 그래..

스택과 큐를 구현해보자

스택여러분들 한번씩은 다 그런 경험이 있을 것이다. 다른 사람이랑 장을 보건, 혼자서 장을 보건 집에 오면서 먹을 간식을 하나 사게 되는데, 계산을 마치고 간식을 먹으려고 봤더니 에엥? 간식이 장바구니 맨 밑에 들어가서 안보여요! 장바구니가 일종의 스택 역할을 해서 그런거다. 예? 그게 무슨 말이죠? 스택은 먼저 들어간 게 나중에 나온다. 그 간식을 맨 처음으로 장바구니에 넣고 다른 물건들을 넣었다면, 먼저 들어간 간식이 다른 물건에 묻히게 된다. 그렇다고 이동중에 장바구니를 들어낼 수는 없고… 씁. 이럴때는 간식을 따로 빼두자. 스택을 만들어보자-상자 만들기스택은 장바구니, 혹은 상자, 혹은 부페 접시(그 부페가면 접시 쌓여있는)다. 그리고 여기서는 상자를 만들고, 상자 안에 물건을 적재하고, 꺼내고 ..

정말 오랜만에 Project restriction enzyme 업데이트

제미나이의 도움을 받아... 일부 블록을 업데이트했음. py파일에 업데이트가 반영될지는 모르겠지만. 공통 업데이트여러분 Jupyter에서 마크다운 쓸 수 있는거 아셨어요? 주피터에서 코드, 마크다운, raw text(VScode에서는 안됨) 다 가능합니다. 그래서 이런식으로 설명이 필요한 블록 위에 마크다운으로 설명 달아놨음. searcher는 검색 결과 읽는법까지 달아놨음...Cutter, Findersearcher에는 해당 업데이트가 적용되지 않았음. OS 선택지에 맥 추가본인쟝 아이폰 아이패드까지 쓰고 있지만 유일하게 안써본게 맥북임. (아이맥은 고딩떄 써봤음) 그래서 전에 코딩하면서도 리눅스 아니면 다른 OS로 선택지가 나뉘었었는데, 그 다른 OS에 사실상 맥이 포함이었습니다. 근데 저대로 하면 ..