728x90
살기 위해 적는 TIL
하루에 학습해야하는 양이 너무 많아져서 매일 적어놔야
그 다음날 무슨 공부부터 시작해야할 지 알 수 있을 거 같다.
우테코 2주차 시작
1주차 리뷰하며 느낀 점
- 객체 지향적으로 코딩한지 너무 오래돼서 배울 것이 많았다. 이번 주차에는 MVC 패턴을 적용시켜볼 예정이다.
- 오류를 찾을 때 디버거를 사용하기
- 배열 대신 컬렉션을 사용하기 - 컬렉션을 사용하면 API를 활용할 수 있다.
- 깃 커밋 메세지 관련 내용은 앞으로 다른 작업을 할 때도 적극 반영하기 - 좋은 git 커밋 메시지를 작성하기 위한 7가지 약속
🚀 사실 갑자기 엄청난 발전을 하는 것은 무리일 것 같다.
이번주차는 먼저 포맷을 신경쓰지 말고 코딩을 한 이후에,
대규모 리팩토링을 해야겠다.
2주차 과제 시 유의할 사항
- class 적극 활용하기
- 함수가 한 가지 일만 하도록 최대한 작게 만들기
- 테스트 도구로 여러 테스트 적용해 보기
✅ git clone 해서 작업 준비하기
✅ 지난 주차 리뷰하고 이번 주차에 반영할 점 생각하기
✅ 문제 읽어보고 정리하기/p>
(코드 리뷰 보니까 예전에 무작정 1회성 코드 작성한 다음에 다른 선생님한테 자랑스럽게 보여줬던 게 떠올랐다.. ㅋㅋㅋㅋ
말을 못하시던... 모습이... 코드는 결국 잘 돌아가는 건 기본이고 보기에도 좋아야 한다!)
컴파일러
Syntax Analysis
Specification: how to specify valid sequence of tokens? - CFG
- terminal, non-terminal, start symbol, productions
Recognition: how to recognize the sepecified patterns? - AST
AMBIGUITY - precedence, associativity ex) dangling else
Automation: how to generate parse tree from CFG? - Top-down, bottom-up parsing
- Top-Down : leftmost derivation - LL(1) [left to right, leftmost derivation]
- LL Parsing Table - FIRST, FOLLOW
- Bottom-Up : rightmost derivation, shift-reduce parsers - LR(0), LR(1), SLR(1), LALR(1)
- LR(0) : NFA → DFA, DFA로 그렸을 때 shift-reduece conflict 일어나면 안됨
- Right Associative, Right Recursive은 shift-reduce conflict 일어남
- LR Parsing Table - action(Shift, Reduce, Accept), goto
- SLR(1) Parsing - shift-reduce 를 Follow를 보고 해결
- LR(1) Parsing - lookahead symbol을 보고 해결
- X → ⍺ . B β, λ : B → . 𝛄, First(βλ)
- LALR(1) - state 수를 줄인 것
- LR(0) : NFA → DFA, DFA로 그렸을 때 shift-reduece conflict 일어나면 안됨
AICE 공부 - 데이터 전처리
결측치 처리하기
df=pd.read_csv("$파일명")
df.info()
df.head()
df.tail()
df.describe() // count, mean, std ...
// "_" 값을 NaN으로 처리하기
import numpy as np
cust = cust.replace("_", np.NaN)
// 결측치는 항상 복사해서 처리하기
// 결측치 채우기
df=df.fillna(15) // 단순히 15로 채워넣기
df=df.fillna(method='backfill') // 뒤에 값 보고 채워넣기
df=df.fillna(method='ffill') // 앞에 값 보고 채워넣기
df=df.interpolate()
// 결측치 제거하기
df = df.dropna() //listwise - null 하나라도 있으면 제거
df = df.dropna(how="all") //pairwise - 모든 값이 null이면 제거
df = df.dropna(thresh=10) //10열에 thresh=10 이면 pairwise 와 같음
df[[$행1, $행2, $행3]] = dr[[$행1, $행2, $행3]].fillna(0)
728x90
'TIL' 카테고리의 다른 글
2024.10.25,27 TIL 정리 - 우테코 2주차 (2) | 2024.10.28 |
---|---|
2024-10-24 TIL 우테코 2주차 구현, 컴파일러 Syntax analysis (0) | 2024.10.28 |
[2024.9.21] TIL - SQL 마스터 클라스 (0) | 2024.09.21 |
[2024.9.7 - 9.8] TIL - SQL 마스터 클라스, 코드트리 (5) | 2024.09.08 |
[2024.9.3] TIL - SQL 마스터 클라스, 코드트리 (0) | 2024.09.03 |