본문 바로가기

TIL

(97)
[240328] 파이썬: 코드카타 49 & SQL: 코드카타 167 [파이썬 코드카타] 두 개 뽑아서 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/68644 *참고 intertools 라이브러리 설명 및 활용 문제 풀이 및 https://datananalysis.tistory.com/112 1) 어떤 문제가 있었나 정수 배열 number에서 서로 다른 인덱스의 2개 수를 뽑은 뒤 더해서 만들 수 있는 모든 수를 오름차순 배열로 담아 반환 numbers = [2,1,3,4,1] result = [2,3,4,5,6,7] 2) 내가 시도해본 건 무엇인가 지난 문제풀이에서 활용했던 itertools 라이브러리 활용 3) 어떻게 해결했나 def solution(numbers): import itertools as ..
[240327] 파이썬: 코드카타 48 & SQL: 코드카타 166 [파이썬 코드카타] K번째수 https://school.programmers.co.kr/learn/courses/30/lessons/42748 1) 어떤 문제가 있었나 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하는 문제 array = [1, 5, 2, 6, 3, 7, 4] commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]] #각 리스트 속 원소가 i, j, k result = [5, 6, 3] 2) 내가 시도해본 건 무엇인가 - command 원소의 길이는 3으로 고정인 점을 활용해 1차 for문으로 우선 slice list 생성 - 2차 for문에서 zip으로 slice list와 command의 마지막 반환 자릿수를 한 ..
[240326] 파이썬: 코드카타 47 & SQL: 코드카타 165 [파이썬 코드카타] 문자열 내 마음대로 정렬하기 https://school.programmers.co.kr/learn/courses/30/lessons/12915 1) 어떤 문제가 있었나 리스트에 포함된 문자열의 인덱스 n번째 음절 순서대로 정렬하는 문제 [예시] strings = ["sun", "bed", "car"] n = 1 result = ["car", "bed", "sun"] 2) 내가 시도해본 건 무엇인가 - 인덱스 n번째 음절을 key 값으로, 문자열을 value 값으로 넣은 딕셔너리 생성 {'u': 'sun', 'e': 'bed', 'a': 'car'} - key 값 기준으로 정렬하고 value 값 리스트 출력 - 인덱스 n번째 음절이 같을 경우(중복), 딕셔너리 key 값이 마지막 값으로..
[240325] 파이썬: 코드카타 46 & SQL: 코드카타 161~164 [파이썬 코드카타] 숫자 문자열과 영단어 https://school.programmers.co.kr/learn/courses/30/lessons/81301 1) 어떤 문제가 있었나 정수형 숫자와 숫자 영단어가 섞여 있는 문자열을 숫자로 반환하는 문제 s = "2three45sixseven" result = 234567 2) 내가 시도해본 건 무엇인가 숫자와 영단어를 각 리스트로 생성한 후 영단어 앞뒤에 뛰어쓰기를 추가해 split(" ") 함수를 적용해보려고 했으나 실패 3) 어떻게 해결했나 - zip()과 replace() 함수를 이용해 영단어 문자열이 포함돼 있으면, 숫자로 바꾸도록 조건 지정 def solution(s): voca = ['zero','one', 'two', 'three','four'..
[240322] 파이썬 실습 코드: 메모리 경량화 (with parquet) * 데이터 출처: App_review_data 1. csv 파일 병합 후 전처리하여 parquet로 저장하기 1) 고용량 데이터 불러오기 - glob 라이브러리 및 함수: 인자로 받은 패턴과 이름이 일치하는 모든 파일과 디렉터리의 리스트 반환 - tqdm 라이브러리 및 함수: 코드 진행률을 파악할 수 있는 프로세스바 지원 from glob import glob from datetime import timedelta from tqdm import tqdm import pandas as pd import matplotlib.pyplot as plt glob(".../app_review_data/*.csv") # ['.../app_review_data\\FACEBOOK_REVIEWS.csv', # '.../a..
[240321] 파이썬: 코드카타 45 & SQL: 코드카타 158~160 [파이썬 코드카타] 시저 암호 https://school.programmers.co.kr/learn/courses/30/lessons/12926 1) 어떤 문제가 있었나 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 함 - 문자열이 있고 특정 숫자만큼 거리를 밀어서 완성되는 문자열을 반환 2) 내가 시도해본 건 무엇인가 - 문자열을 숫자로, 숫자를 문자열로 바꿀 수 있는 함수를 찾아봄 - ord('문자'): 아스키 코드(숫자)를 반환 - chr('숫자'): 아스키 코드에 해당하는 문자열을 반환 3) 어떻게 해결했나 - a~z, A~Z 구간을 ord 함수로 숫치화 하여 if 절로 조건 추가 - 알파벳 구간을 순회할 수 있도록 마지막에 26 빼기 처리..
[240321] 클러스터링 분석 - ② 차원 축소: 주성분 분석(PCA)과 t-SNE [파이썬으로 하는 클러스터링 분석 by 강민구 튜터] 1. 주성분 분석(PCA) 1) 정의 - 고차원 데이터의 차원을 축소하는 대표적인 방법 중 하나로 Principal Component Analysis의 약어 - 데이터의 특성(분포)을 최대한 보존하면서 차원을 축소하는 ‘주성분’을 찾아내는 방법 └ 분산(Variance)을 보존하면서 서로 직교하는 새 축을 찾아 고차원 공간 표본을 선형 연관성 없는 저차원 공간으로 변환하는 기법 └ 하기 그래프에서는 C1선이 가장 데이터를 잘 담아내는 새로운 차원이 됨 - PCA에서 핵심은 어디서 바라봐야 나무 블록을 가장 잘 볼 수 있을지, 새로운 관점(새로운 차원 aka 주성분)을 찾아내는 것 - 주성분 분석은 기존 변수를 선형 결합해 새로운 변수를 생성하는 변수 ..
[240320] 파이썬으로 하는 클러스터링 분석 - ① 기본 개념과 거리 계산 [파이썬으로 하는 클러스터링 분석 by 강민구 튜터] 1. 클러스터 개념과 거리 1) 클러스터링 정의 - 사전적으로 클러스터링(Clustering)은 서로 가까이 있는 비슷한 것들의 그룹(군집)을 이루는 작업 - 데이터 분석 기법에서 클러스터링은 분석 대상이 되는 데이터의 그룹을 만드는 방법론 - 그룹은 마구잡이로 만드는 것이 아니라, 특정 기준인 '데이터 사이의 거리'를 바탕으로 생성 └ intra-cluster(군집 내 거리): 군집 내 데이터 간 거리가 가까울수록 좋음 └ inter-cluster(군집 간 거리): 각각의 군집 사이의 거리는 멀수록 좋음 - 데이터 특성이나 분석가 주관에 따라 같은 데이터라도 둘 사이 거리를 다르게 판단할 수 있음 2) 클러스터링 활용 예시 ① Summarizatio..