본문 바로가기

전체 글

(237)
numpy 사용하기 벡터, 행렬, 배열 넘파이의 핵심 데이터 구조는 다차원 배열이다 벡터 만들기 import numpy as np # 행이 하나인 벡터 vector = np.array([1, 2, 3]) # 열이 하나인 벡터 vector = np.array([[1], [2], [3]]) # 넘파이 배열은 ndarray 클래스의 객체 print(type(vector)) # ndarray 클래스의 첫 번쨰 매개변수에 배열 크기를 정수 튜플로 지정하여 넘파이 배열 생성가능 # 권장하는 방법은 아님 vector = np.ndarray((3,)) # asarray 함수를 사용하여 배열을 만드는 방법도 가능, 단 입력이 넘파이 배열일 때는 새로운 배열을 생성하지 않음 vector = np.asarray([1, 2, 3]) 행렬 만들기 import num..
Python 백준 1011 Fly me to the Alpha Centauri 문제- 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수..
Python 백준 10757 큰 수 A+B 문제- 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력- 첫째 줄에 A와 B가 주어진다. (0
Python 백준 2839 설탕 배달 문제- 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력- 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력- 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약..
Python 백준 1193 분수찾기 문제- 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력- 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력- 첫째 줄에 분수를 출력한다. 해설- 소스코드- num = int(input()) i=0; sum=0 for i in range(0, num+1): if(sum+i>=num): break sum += i if(i%2!=0): str = str(((sum + i + 1) - num)) + '/' + str((num - sum)) pr..
파이썬으로 웹 크롤링하기(4)최대 페이지 이전 글에서는 페이지 번호를 내가 지정해서 그 페이지까지 크롤링을 하였지만 최대 페이지를 모르는 경우도 있고 여러가지 상황이 있을 수 있다. 다음 소스코드는 최대 페이지까지 크롤링을 진행하여준다. -소스코드 import requests from bs4 import BeautifulSoup import pandas as pd from selenium import webdriver from openpyxl import Workbook import os import time def get_data(url): name = list() author = list() price = list() options = webdriver.ChromeOptions() chromedriver_path = (r'C:/Users/e..
파이썬으로 웹 크롤링하기(3) 동적 페이지 이전까지의 크롤링은 정적으로 변하거나 한 페이지만 크롤링을 하였다. 예를 들어 다음 페이지를 눌렀는데 URL 주소가 변하지 않고 그대로라면 이전 방식으로는 크롤링을 할 수 없다. 이러한 상황에서 크롤링을 하기 위해서는 chromedirver와 파이썬 라이브러리인 selenium이 필요하다. 우선 교보문고의 국내도서 -> 소설 -> 베스트셀러 경로로 들어가보자. 첫 페이지의 URL은 http://www.kyobobook.co.kr/categoryRenewal/categoryMain.laf?perPage=20&mallGb=KOR&linkClass=01&menuCode=002이다. 다음 페이지로 넘겨보아도 URL은 http://www.kyobobook.co.kr/categoryRenewal/categoryMa..
파이썬으로 웹 크롤링하기(2) 데이터 변환 저번 글에 이어 이번에는 가격과 작가 정보를 추가로 얻어와 csv파일과 xlsx 파일로 저장을 해보겠다. 우선 작가와 가격정보는 크롬의 개발도구를 이용하여 selector를 얻고 동일하게 정보를 가져온다. 소스코드 - import requests from bs4 import BeautifulSoup def get_name(url): name = list() html = requests.get(url).text soup = BeautifulSoup(html, 'html.parser') for anchor in soup.select("div.info_area > div.detail > div.title > a > strong"): name.append(anchor.get_text()) return name ..