공부/python 13

혼공학습단 12기를 마치며..

혼공학습단 12기를 마치며혼공학습단을 알게 된 경로는 SNS였다. SNS에는 항상 이것저것 공부해야지하며 저장해놓은 북마크가 가득했지만 내 의지는 마음만큼 따라주지는 않았던 것같다. 나름 열심히 산다고 생각했던 것 같은데 그럼에도 매사 대충 대충 넘어가는 성격에 스스로 자책도 많이 하고 다니는 회사에서도 내가 원하는 업무와는 조금 다른 일을 하고 있어, 매너리즘이 심하게 왔던 상황이었다. 혼공학습단을 신청하게 된 계기는 "단순함"이었다.  커리큘럼이 상당히 간단했다. 되려 겁먹고 못 시작할까봐, 또는 난이도가 어려울까봐 고민을 할 필요가 없었다.마침 작년 생일에 선물받은 책 2권이 "혼자 공부하는 데이터 분석" 과 "혼자 공부하는 컴퓨터 구조 운영체제" 과 있었고 그냥 무작정 시작했다.   8:00-17..

공부/python 2024.08.18

혼자 공부하는 데이터 분석 6주차: 복잡한 데이터 표현하기

pyplot 방식과 객체지향 API 방식 pyplot 방식: matplotlib.pyplot에 있는 함수를 사용객체지향 API 방식: 피겨 객체와 서브플롯 객체를 만들고 이 객체의 메서드를 사용 pyplot() 방식으로 그려보기matplotlib.pyplot에 있는 함수를 사용하면 함수들이 하나의 피겨 객체에 대한 상태를 공유한다.plot() 함수와 title() 함수가 동일한 피겨 객체에 적용되는 모습을 확인할 수 있다.plot()함수에 하나의 리스트만 전달시 plot()함수는 해당 리스트를 y축의 값으로 인식하고 해당 리스트의 인덱스 값을 x축 값으로 사용한다. 객체지향 API 방식으로 그래프 그리기 객체지향 API 방식으로 그래프를 그릴시, 하나의 axes() 객체를 가지는 피겨를 생성한다.주로 여..

공부/python 2024.08.18

혼자 공부하는 데이터 분석 5주차: 데이터 시각화하기

맷플롯립 그래프를 담는 객체figure, rcParams, subplot Figure 객체figsize 매개변수: 그래프의 크기를 튜플로 지정 가능 기본 그래프 크기 (6,4)맷플롯립의 DPI 기본값은 72로 1인치를 몇 개의 점으로 표현하는지 보여주는 DPI가 제대로 설정이 되어 있지 않으면 figsize 매개변수에 지정한 대로 그래프가 그려지지 않기도 한다.plt.figure(figsize=(900/72,600/72)) - 그럴 때는, 픽셀 값을 DPI값으로 나누면 인치 값을 구할 수 있다.- 코랩 노트북은 기본적으로 맷플롯립 그래프를 출력시 타이트 레이아웃( 공백 최소화)을 사용한다. %config InlineBackend.print_figure_kwargs = {'bbox_inches': None..

공부/python 2024.08.11

혼자 공부하는 데이터 분석 4주차: 데이터 요약하기

용어 정리 기술 통계자료의 내용을 압축하여 설명하는 방법을 일컫는다. 요약통계라고도 칭한다.대표적인 통계량에는 평균, 표준편차 등이 있다. 탐색적 데이터 분석 데이터 시각화를 아울러, 정량적인 수치로 전체 데이터의 특징을 요약하거나 이해하기 쉬운 그래프를 사용하는 데이터 분석 방법을 일컫는다. 기술 통계 구하기describe() 메서드는 기본적으로 수치형 열에 대한 요약 통계를 보여 준다.count : 누락된 값을 제외한 데이터 개수를 나타낸다.mean: 평균을 구해준다.std:  표준편차를 구한다.min: 최솟값을 구한다.50% : 중앙값을 구한다.25%와 75%: 순서대로 늘어 놓았을 때 25% 지점과 75% 지점에 놓인 값을 구한다.max: 최댓값을 구한다. 3장에서 배운 불리언 배열과 sum()함..

공부/python 2024.07.28

혼자 공부하는 데이터 분석 3주차: 데이터 정제하기

불필요한 데이터 삭제하기데이터 정제데이터에서 손상되거나 부정확한 부분을 수정하고 불필요한 데이터를 삭제하거나 불완전한 값을 교체하는 작업데이터 랭글링 / 데이터 먼징데이터를 정제하는 과정과 데이터 분석 및 머신러닝에 적합한 형태로 데이터를 변환하는 과정열 삭제하는 방법loc 메서드에 슬라이싱 사용loc 메서드 & 불리언 배열 사용drop() 메서드  / inplace = True (선택한 데이터프레임에 덮어쓰기)dropna() 메서드 / how = 'all' (모든 값이 결측치인 열 삭제 시 사용되는 매개변수)행 삭제하는 방법drop() 메서드 사용[] 연산자와 슬라이싱[] 연산자와 불리언 배열중복된 행 찾기subset() 매개변수 (일부 열을 기준으로 중복된 행을 찾음) duplicated() 메서드 ..

공부/python 2024.07.21

혼자 공부하는 데이터 분석 2주차: 데이터 수집하기

API란 두 프로그램이 서로 대화 방식을  정의 (데이터를 주고 받는 규칙을 맞춰주는 개념)HTTP는 인터넷에서 웹 페이지를 전송하는 기본 통신 방법다양한 API 중 HTTP 프로토콜을 사용하는 웹 기반 API가 널리 사용된다.HTML은 웹 페이지를 위한 표준 언어이며 마크업 언어라고 부른다.웹 기반 API에서 HTML 대신 csv,json,xml을 선호하는데 이유는 HTML의 구조가 복잡하기 때문이다.  파이썬에서 JSON 데이터 다루기 JSON의 객체는 파이썬 딕셔너리와 유사한 형태이다.d = {"name": "집에 가고 싶다"}print(d['name'])import json#파이썬 객체를 json 형식에 맞는 텍스트로 바꾸기d_str = json.dumps(d,ensure_ascii=False) ..

공부/python 2024.07.14

혼자 공부하는 데이터 분석 1주차: 데이터 분석을 시작하며

데이터 분석이란?  위키피디아에서는 데이터 분석이란 '유용한 정보를 발견하고 결론을 유추하거나, 의사 결정을 돕기 위해 데이터를 조사,정제,변환,모델링하는 과정'으로 정의하고 있다.데이터 분석과 함께 자주 언급되는 용어는 데이터 과학으로, 데이터 과학이 데이터 분석보다 더 큰 개념으로 볼 수 있다.데이터 분석은 통계학과 관련이 많다. 통계적 관점에서 보면 데이터 분석은 크게 기술통계, 탐색적 데이터 분석, 가설검정으로 나눌 수 있을 것이다.기술통계: 관측이나 실험을 통해 수집한 데이터를 정량화하거나 요약하는 기법탐색적 데이터 분석: 데이터를 시각적으로 표현하여 주요 특징을 찾고 분석하는 방법가설검정: 주어진 데이터를 기반으로 특정 가정이 합당한지 평가하는 통계 방법   [데이터 분석과 데이터 과학의 차이..

공부/python 2024.07.07

알고리즘 BFS(너비우선탐색)

# BFS - 너비 우선 탐색(Breadth-First Search, BFS)은 그래프를 탐색하기 위한 대표적인 알고리즘 중 하나로, 시작 노드로부터 가까운 노드부터 차례대로 탐색하는 방식(자기 자식을 우선 탐색) - Graph:Vertex(어떤것)+Edge(이어지는것) - 해당 알고리즘은 그래프 탐색, 최단 경로 찾기, 네트워크 트래픽 경로 계산 등에 활용 - 주로 Queue 자료구조를 활용하여 구현 - Queue는 리스트의 한쪽 끝에는 삽입 작업이 이루어지고 한쪽 끝에는 삭제 작업이 이루어지는 선입선출FIFO 구조로 운영되는 유한 순서 리스트 ## 시간복잡도 - BFS: o(v+e) - vertex 계산 + edge 갯수 BFS의 순회경로는 다음과 같다. 1. A를 방문 2. A 인접 정점 B,C 방..

공부/python 2023.11.24

enumerate

enumerate 함수는 순서가 있는(iterable) 자료형(리스트, 튜플, 문자열 등)을 입력으로 받아, 각 원소와 그 인덱스를 포함하는 enumerate 객체를 반환하는 파이썬의 내장 함수 예시 my_list = ['apple', 'banana', 'cherry'] for index, value in enumerate(my_list): print(f"Index: {index}, Value: {value}") 리스트 생성 후 apple,banna,cherry 입력 enumerate는 주로 for문과 같이 사용된다. format함수를 사용하여 출력해보자 Index: 0, Value: apple Index: 1, Value: banana Index: 2, Value: cherry 위의 for문에서 ind..

공부/python 2023.11.23

IQR 이상치

이상치 탐지를 위한 사분범위(InterQuartile Range, IQR) 작년부터 BLE에서 발생하는 스푸핑 공격 탐지 시스템의 개발을 위해 관련된 논문이나 정보들을 찾아 읽어보기 시작했습니다. 저는 단순히 스푸핑 공격을 감지하는 것이 아닌 사용자와 공격자를 ahang.tistory.com 이상치: 극단적으로 튀는 값 [이상치의 특징] 1. 극단적인 값 2. 예외적인 패턴: 예상되는 데이터에서 벗어나는 패턴을 지님 3. 실수 또는 에러 4. 통계적 이상성 이상치는 데이터 분석에서 고려되어야 하는 이유 중 하나는 이상치가 모델링 결과를 왜곡시키고 잘못된 결론을 도출할 수 있다는 것. 따라서 이상치를 식별하고 처리하는 것은 데이터의 신뢰성을 높이고 정확한 분석 결과를 얻기 위한 중요한 단계. IQR (In..

공부/python 2023.11.04