분류 전체보기 (92) 썸네일형 리스트형 데이터 분석 시작하기 #3 : CSV와 결측치 보간 CSV란?CSV 파일은 쉼표(,)를 사용하여 데이터를 구분하는 텍스트 파일입니다.엑셀과 같은 프로그램에서 쉽게 데이터를 저장하고 불러올 수 있으며, 데이터 분석에 자주 사용되는 파일 형식입니다.Pandas로 불러오는 방식은 다음과 같이 간단합니다. import pandas as pddf = pd.read_csv('파일경로.csv') # ex) 'titanic.csv'print(df.head()) 주요 옵션encoding='utf-8': 인코딩 방식 (한글이 깨질 경우 'cp949' 사용)sep=',': 구분자 (기본은 콤마)na_values=['?', 'N/A', '--']: 특정 문자열을 결측치로 인식df = pd.read_csv('data.csv', na_values=['?', 'N/A', '--'.. 데이터 분석 시작하기 #1 : 데이터 전처리를 위한 Numpy NumPy란?NumPy(Numerical Python)는 파이썬에서 수치 연산과 데이터 분석을 쉽고 빠르게 할 수 있도록 지원하는 라이브러리입니다. 다차원 배열 처리와 고급 수학 함수들을 제공합니다.NumPy 설치 및 기본 사용법NumPy는 pip를 통해 쉽게 설치할 수 있습니다.pip install numpy설치 후 NumPy를 불러오고 기본 배열을 생성해봅시다.import numpy as nparr = np.array([1, 2, 3, 4, 5])print(arr)NumPy 배열과 파이썬 리스트의 차이NumPy 배열은 리스트와 유사하지만, 데이터의 타입이 동일해야 하며, 크기가 고정적이라는 특징이 있습니다. 이는 효율적인 메모리 관리와 빠른 연산 속도를 보장합니다.왜 NumPy?NumPy는 파이썬 리.. 데이터 분석 시작하기 #2 : 데이터 전처리를 위한 Pandas(시리즈와 프레임) Pandas는 Python에서 데이터를 다루기 위한 대표적인 라이브러리 이다.엑셀처럼 표 형태의 데이터를 쉽게 다루고 분석할 수 있으며, 데이터 분석의 가장 유명한 라이브러리중 하나이다.Pandas 설치 Pandas를 간단히 설치하려면, 먼저 파이썬과 pip가 설치되어있어야 한다.둘 모두 설치되어있다면pip install pandas를 터미널에 입력해 pip를 통한 설치가 가능하다.Pandas 불러오기 pandas를 파이썬코드에서 불러오려면, import를 사용하면 된다.import pandas as pd를 이용해 pandas를 불러올 수 있다.Pandas의 기본 자료구조판다스의 두 가지 대표적인 자료구조에는 시리즈(Series)와 데이터프레임(Dataframe)이 있다. - 시리즈(Series)Ser.. 백준 24025 : 돌의 정령 줄세우기 이 문제는 주어진 '시야점수' 조건에 맞추어 돌의 정령에 줄을 세우는 문제이다. 시야점수란 돌의 정령이 모두 오른쪽을 바라보고있을때, 해당 정령이 볼 수 있는 다른 정령의 수이다. 숫자를 통해 말하면 자신 오른쪽에오는 자신보다 큰 가장 왼쪽 수 까지의 거리 가 '시야 점수'이다. 이때 만약 자신의 오른쪽에 자신보다 큰 정령이 없는 경우 자신의 시아점수는 1e9 + 7이 된다.(사실상 MAX값) 문제에서 주어지는 조건의 수열을 arr이라 할때, arr[i]가 양수인 경우 자신의 시야점수가 arr[i] 이상이 되어야하고arr[i]가 음수인 경우 자신의 시야점수가 arr[i] 이하여야 한다. 이 문제는 간단한 방법으로 풀 수 있다.우선 문제의 조건에서는 이상, 이하만을 말하고 있음으로, 언제나 최대 혹은 최.. 백준 28121 : 산책과 쿼리 문제 개요주어진 그래프에서 시작점으로 돌아오는 경로의 길이가 10^{6} 이상인 t인 노드의 개수를 구하는 문제이다. 한 노드는 여러 번 방문 가능하며, 왕복 경로를 찾는 것이 핵심이다.풀이 아이디어그래프를 이분그래프로 변환노드 간의 관계를 짝수 시간 노드와 홀수 시간 노드로 나눈다. 노드 v_{0}는 짝수 시간에, v_{1}은 홀수 시간에 도달 가능한 노드를 의미한다.Union-Find(Disjoint Set Union)DSU를 사용해 연결된 노드 집합을 관리하며, 다음 두 가지 관계를 처리한다:짝수 노드와 홀수 노드의 연결짝수-홀수, 홀수-짝수 간선이 하나의 집합에 포함되도록 병합가능한 노드의 수 계산DSU 구조를 통해 특정 집합에서 짝수 시간 노드와 홀수 시간 노드의 개수를 합산하여 결과를 계산.. 백준 : 30392 K분 그래프 주어진 그래프에서 그래프의 Closed walk P에대해 P의 간선에 가중치의 합이 항 상K의 배수인지를 판별하는 문제이다.여기서 닫힌 보행(Close walk)란 시작점과 끝점이 같으며, 같은 정점과 간선을 여러 번 방문할 수 있는 경로를 말한다. 이 문제는 mod연산의 성질과 이분그래프의 접근을 통해 해결이 가능하다. 주어진 그래프에 임의의 한 점에서부터주어진 그래프에서 그래프의 Closed walk P에대해 P의 간선에 가중치의 합이 항 상K의 배수인지를 판별하는 문제이다. 여기서 닫힌 보행(Close walk)란 시작점과 끝점이 같으며, 같은 정점과 간선을 여러 번 방문할 수 있는 경로를 말한다. 이 문제는 mod연산의 성질과 이분그래프의 접근을 통해 해결이 가능하다. 이 문제를 “그래프 상에서.. USACO 2024 January Contest 1. Majority Opinion문제에서 주어진 N마리의 소들의 의견이 각각 다르다. 이때 인접하는 소들을 원하는 수만큼 묶어 그 그룹 전체를 그 그룹의 과반수의 의견으로 바꾼다. 그룹을 묶는 횟수에 제한이 없고, 최종적으로 모든 소를 하나의 의견으로 통일 시키면 되는 것임으로, 결국 3마리의 소를 묶었을 때, 해당 그룹에 2마리 이상의 소가 같은 의견이면 모든 의견을 통일시킬 수 있다.ex) aab, aba, baa ← 형태의 의견이 있다면 a로 통일이 가능하다.code#include #include #include #include using namespace std;int main(){ int i, j; int t; scanf("%d", &t); while(t--) { .. USACO 2024 December Contest 1. Roundabout Rounding이 문제의 체인반올림은 1의자리에서부터 반올림을 해가면서 가장 높은자리까지 반올림을 하는 새로운 계산법이다. 이때, 체인반올림과 그냥 반올림을 한 수가 다른 1 ~ 주어진 N까지의 모든 수의 개수를 구하는 문제이다.간단히 45…55이 수부터 가장 높은자리에서의 반올림과 체인반올림이 달라지고, 50…00부터 같아짐으로 이 사이의 수를 모두구하면된다.만약 N이 50…00보다 크다면 50…00으로 N을 갱신후, 45…54를 빼주면 된다.code#include #include #include #include using namespace std;using ll = long long;ll P[11];int main(){ int t; scanf("%d", &t); .. 이전 1 2 3 4 ··· 12 다음