728x90

python 11

[데이터 사이언스] Seaborn 으로 샘플 데이터셋 가져오기

파이썬 Seaborn 패키지는 데이터 로딩이나 랭글링 작업에 소요되는 시간과 모듈 활용 시 혼동을 줄이기 위해 패키지 차원에서 샘플 데이터셋을 제공한다. 특정 함수가 호출되면 연결된 온라인 레포지토리에서 데이터를 가져 오기 때문에 인터넷 연결이 필요하다. 1. Seaborn 패키지 불러오기 import seaborn as sns 2. 샘플 데이터셋 목록 확인하기 dataset_names = sns.get_dataset_names() 3. 샘플 데이터셋 가져오기 2.에서 확인한 샘플 데이터셋 명을 인자로 함수를 호출하면 데이터를 가져올 수 있다. diamonds = sns.load_dataset('diamonds') # 다이아몬드 데이터셋 + 원본 데이터셋이 업로드되어 있는 온라인 레포지토리 github...

[데이터시각화] Seaborn Boxplot 예제 코드 설명

0. 패키지 및 데이터 불러오기 import seaborn as sns tips = sns.load_dataset("tips") 1. 기본 가로형 세로형 Boxplot 그리기 ax1 = sns.boxplot(x=tips["total_bill"]) # 가로형 boxplot, orient="h" 명시적으로 설정 가능 ax2 = sns.boxplot(x="total_bill", orient="v", data=tips) # 세로형 boxplot 2. 집단별 Boxplot 그리기 ax = sns.boxplot(x="day", y="total_bill", data=tips) ax = sns.swarmplot(x="day", y="total_bill", data=tips, color=".25") # 데이터 포인트 나..

[프로그래머스] 폰켓몬 풀이 (Python 코드 첨부)

문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..

알고리즘 2020.09.14

[프로그래머스] 비밀지도 풀이 (Python 코드 첨부)

문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. 지도 1과 지도 2는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도의 각 가로줄에서 벽 부분을 1, 공..

알고리즘 2020.09.12

[프로그래머스] 다트 게임 풀이 (Python 코드 첨부)

문제 설명 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#..

알고리즘 2020.09.11

[프로그래머스] 키패드 누르기 풀이 (Python 코드 첨부)

문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..

알고리즘 2020.09.07

[Python] 파이썬 데코레이터 Decorator from scratch in Python

1. 일급객체(first-class object) : 컴퓨터 프로그래밍 언어 디자인에서 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 의미함. (ex. 매개 변수로 넘기기, 수정하기, 변수에 대입하기, 동일 비교하기 등) 1960년대, 영국의 컴퓨터 과학자 크리스토퍼 스트래치가 알골의 실수와 프로시저를 비교함으로써 일급 객체와 이급 객체의 개념에 대해 처음으로 언급함. 로빈 포플스톤은 일급 객체를 구성하는 요소는 다음의 기본적인 권리가 있다는 정의를 내림. 모든 요소는 함수의 실제 매개변수가 될 수 있다. 모든 요소는 함수의 반환 값이 될 수 있다. 모든 요소는 할당 명령문의 대상이 될 수 있다. 모든 요소는 동일 비교의 대상이 될 수 있다.z1990년대에 들어 미국의 컴퓨터 과학자 ..

프로그래밍 2020.06.07

[Python] 파이썬의 내부는 어떻게 생겼을까? CPython

파이썬은 파이썬만의 프로그래밍 언어 문법에 맞춰 코드를 작성하면 이를 작성한대로 실행하여 주는 하나의 프로그램이라고 할 수 있다. 개발자가 작성한 코드대로 실행해 주기 때문에, 다시말해서, 개발자가 의도한 프로그램을 만들 수 있도록 도와 주기 때문에 프로그래밍 언어라고 불린다. 그렇다면 파이썬의 내부는 어떻게 생겼을까? 파이썬 공식 웹 사이트 에서 다운받는 대부분의 파이썬의 경우 내부는 C언어로 구현되어 있다. 이를 CPython이라고 한다. 파이썬은 오픈 소스 프로젝트로 깃허브를 통해 코드를 공개하고 있기 때문에 여기에서 실제 구현 코드를 확인할 수 있다. 아래는 python 3.10.0 alpha 0 버전의 문자열 비교 함수의 모습이다. 파일명 pystrcmp.c에서 .c 확장자가 사용되고 있음을 알..

프로그래밍 2020.06.07

[자료구조] Python 파이썬으로 단일연결 정렬 리스트 구현하기 코드 설명

class Node: def __init__(self, data): self.data = data self.next = None class SinglySortedLinkedList: def __init__(self): self.head = None self.count = 0 def append(self, node): if self.count == 0: self.head = node self.count = 1 else: cur_node = self.head prev_node = None # cur_node의 data와 node의 data를 비교하며 삽입 위치 파악 while cur_node != None and cur_node.data

프로그래밍 2020.06.02

[자료구조] Python 파이썬으로 이중연결 정렬 리스트 구현하기 코드 설명

class Node: def __init__(self, data): self.data = data self.prev = None self.next = None class DoublySortedLinkedList: def __init__(self): self.head = None self.count = 0 def append(self, node): if self.count == 0: self.head = node self.count = 1 else: cur_node = self.head prev_node = None # cur_node의 data와 node의 data를 비교하며 삽입 위치 파악 while(cur_node != None and cur_node.data

프로그래밍 2020.06.02
728x90