본문 바로가기
반응형

분류 전체보기514

[Pandas 기초] Series, Dataframe, loc, iloc, slicing, dictionary = {object : value} Series = dic에 index가 추가된 것 object = pd.Series(dic) Dataframe = Series의 집합 object = pd.Dataframe({ 'DF1' : Dataframe1 'DF2' : Dataframe2 }) Indexing / Slicing loc : 명시적인 인덱스를 참조하는 인덱싱/슬라이싱 china만 인덱스값만 뽑아줘 => country.loc['china'] china의 title이 인덱스가 됨. iloc는 앞에서부터 인덱싱을 가지고 있게 하여 이를 참조함 칼럼 제목 만드는 방법 리스트로 추가하는 방법 딕셔너리로 추가하는 방법 특정 값 변경하기 DraFrame 칼럼 추가하기 Series 와 DataFra.. 2020. 10. 5.
[NumPy] Numpy란? 고성능의 수치 계산 라이브러리 py에서 대규모 다차원 배열을 다룰 수 있는 라이브러리 N차원의 배열 객체를 지원 효율적인 데이터 분석을 도와줌 데이터의 대부분은 숫자 배열 list VS numpy - 리스트에 비해 빠른 연산, 효율적인 메모리 사용 - list와 달리 numpy의 array는 단일타입 (float64) list(range(10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] import numpy as np np.array([1, 2, 3, 4, 5]) # array([1, 2, 3, 4, 5]) 실습 numpy library에서 자주 사용되는 함수들로는 np.array - 배열생성 np.zeros - 0이 들어있는 배열 생성 np.ones - 1이 들어있는 배열 생성 np.. 2020. 10. 5.
[NumPy] numpy 문제 풀기. 0의 갯수 세기 문제import numpy as np daily_liar_data = [0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0] # 양치기 소년이 거짓말을 몇 번 했는지 구하여 출력해주세요. def main() : # 코드 작성 if.. 2020. 10. 5.
[NumPy] numpy, 집계함수, 요약, 통계, sum, min, max, mean, std / axis에 따른 방향 집계 : 데이터에 대한 요약 통계를 볼 수 있다. 2020. 10. 5.
[NumPy] numpy, np, 브로드캐스팅 연산(Broadcasting) Broadcasting 행렬에 따라서 연산하기 (행렬,연산) 다음과 같은 경우 다른 차원의 데이터로도 연산이 가능하다. (3,3) + (1,3) = (3,3) shape이 다른 array연산하기 퀴즈 A = np.arange(6).reshape(3,2) B = np.arange(3).reshape(3,1) print(A+B) 정답 [[0 1] [3 4] [6 7]] 퀴즈 import numpy as np ''' [[0] [1] [2] [3] [4] [5]] 배열 A와 [0 1 2 3 4 5] 배열 B를 선언하고, 덧셈 연산해보세요. ''' # 정답 A = np.arange(6).reshape(6,1) B = np.arange(6) print(A+B) 2020. 10. 5.
[NumPy] numpy와 array, 함수, 행렬 def 함수 array의 size가 크다면?? 이전에 만든 함수를 적용했을 때는 5.3초 소요. 하지만 이 함수는 더 큰 사이즈에서는 사용하기 힘들어 하지만 numpy는 자체적으로 complie된 함수를 사용하여 빠르게 처리가능! numpy에서 제공하는 기본 연산 2020. 10. 5.
[NumPy] np.arange.reshape np 라이브러리 안에 있는 것이므로 np를 먼저 쓸 것 (8,) : 1차원 배열인데 8개가 있다. np.concatenate arange(4) : 0~3까지 있는 1차원 배열 reshape(2,2) : 2행 2열로 변경 axis = 0 : 아래방향으로 진행 np.split arange(16) : 0~15까지 reshape(4, 4) : 4행 4열 [3] : 인덱스 3번째에서 분리 axis = 0 : 인덱스는 위아래 순서로 매김 2020. 10. 4.
[NumPy] np.random.randint ndim : 차원 shape : 행렬 size : 갯수 dtype : 데이터 타입 x[3] : 4번째 원소 찾기 x[7] : 8번째 원소 찾기. 하지만 8번째 원소는 없기에 인덱스 에러 발생 x[0] = 10 : 0번째 원소의 값을 10으로 변경 arange(7) : 0이상 7미만까지 [1:] : 2번째 원소부터 끝까지 [:4] : 5번째 원소 미만(4번째 원소)까지 [::2] : 전체에서 2개씩 건너뛰기 2020. 10. 2.
pandas / .loc .loc['행 조건', '열 조건]을 사용하면 조건부 데이터 추출이 가능합니다. 다음 문장을 살펴봅시다. df.loc[df['가격']>=100, :] 행 조건에 가격 열의 값이 100 이상인 조건을 지정했으므로, 해당 조건에 맞는 행들만 가져와집니다. 열 조건에 있는 :(콜론)은 조건을 지정하지 않고 모든 값을 가져온다는 뜻이므로, 가격이 100 이상인 행의 모든 값들을 가져온다는 뜻이 됩니다. import pandas as pd # 코로나 데이터를 불러옵니다. data_path = './data/corona_data.xlsx' corona_data = pd.read_excel(data_path) # 확진자가 10000명 이상인 시점부터의 모든 데이터를 추출합니다. confirmed_10000 = cor.. 2020. 9. 25.
[기초코딩] 100에서 1까지 거꾸로 출력하기 # 여기 빈 리스트가 있습니다. number_list = [] # number_list에 1부터 100까지 수를 거꾸로 넣어보세요 # 예: 100, 99, 98, ... 3, 2, 1 # number_list.append("abc") # 100에서 거꾸로 거꾸로 넣으려면 어떻게 해야하지?? for i in range(0,100) : # 왜 0 ~ 99까지 출력되도록 넣은걸까?? number_list.append(100 - i) for i in range(0,100,-1) : number_list.append(i) # number_list에서 10번째, 30번째, 50번째 원소를 각각 출력해봅시다 print(number_list[9]) # 10번째 원소 print(number_list[29]) # 30번째.. 2020. 9. 20.
함수 def add(a,b) : c = a+b print(c) add(3,3) ''' def add(a,b): c=a+b return c # 결과값을 호출하는것에 c를 반환함 # return은 결과값을 반환 print(add(3,2)) ''' ''' def add(a,b) : c = a+b d = a-b return c,d print(add(2,2)) # 출력값 (4, 0) ''' # list에서 소수만 출력해보자 # 소수는 1과 자기자신만 존재해야 소수 # 지역변수 x def isPrime(x) : for i in range(2,x): # 2부터 x앞까지만 반영됨 if x%i==0: return False return True a = [12,13,7,9,19] for y in a : if isPrime(y).. 2020. 9. 11.
네이버 카페 크롤 - 01 로그인 하기 목표 : 네이버 카페 특정 키워드 검색 결과 받아오기 순차 1. 로그인 - time.sleep(20) 수동으로 진행 2. 카페 이동 3. 검색어 검색 4. 결과 출력 깃허브 2020. 8. 30.
[나도코딩] 가격비교 사이트, 나도 만들 수 있다! 잼있게 파이썬으로 하는 크롤러 제작 [Crawling] 검색엔진이 크롤링을 이용함 구글봇, 빙봇 이 봇들이 여러 사이트를 돌아다니면서 사이트에 연결된 페이지를 복사해서 DB에 복사해서 검색이 잘되도록 분류함 크롤링 1. 정보를 수집 후 가공해서 사용 : 스크래핑 2. 크롤링 봇을 이용한 복사 수집 크롤러가 읽어도 되는 정보와 읽지 않았으면 하는 정보를 Robots.txt에 기재함. 크롤러는 Robts.txt를 따르지만 따르지 않는 악성 크롤러도 있다. 실습 모듈 : 복잡한 기능을 편리하게 만든 함수 (import random) pip : 모듈을 다운받기 위해 pip라는 명령어를 사용 셀리니움 : 브라우저를 열어 접속한 뒤 html을 긁어옴 1. chrome://version 을 검색해서 버전을 확인 2. chorme webdriver download를 입력해.. 2020. 8. 30.
[나도코딩] 파이썬 코딩 무료 강의 (활용편3) - 웹 크롤링? 웹 스크래핑! 4. find_all, for 문 활용 1-1 네이버 웹툰 전체목록 가져오기 import requests from bs4 import BeautifulSoup url = "https://comic.naver.com/webtoon/weekday.nhn" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") class : "title"인 모든 엘리먼트를 찾자 # class : "title"인 모든 엘리먼트를 찾자 # find는 그 조건에 해당되는 첫번째 엘리먼트만 찾음 # find_all은 조건에 해당되는 모든 엘리먼트 찾음 cartoons = soup.find_all("a",attrs={"class":"title"}) for cartoon .. 2020. 8. 29.
[나도코딩] 파이썬 코딩 무료 강의 (활용편3) - 웹 크롤링? 웹 스크래핑! 3 : attrs, find, class, sibling, siblings 10. 웹툰 크롤링 : attrs, find, class !pip install beautifulsoup4 # 구글 분석 파서 !pip install lxml import requests from bs4 import BeautifulSoup url = "https://comic.naver.com/webtoon/weekday.nhn" res = requests.get(url) res.raise_for_status() # 가져온 html문서(res.text)를 lxml파서를 통해 BS객체를 만든 것 soup = BeautifulSoup(res.text, "lxml") print(soup.title) print(soup.title.get_text()) # 태그뺴고 텍스트만 출력 결과 네이버 만화 > 요일별 웹.. 2020. 8. 28.
[나도코딩] 파이썬 코딩 무료 강의 (활용편3) - 웹 크롤링? 웹 스크래핑! 2 : User Agent 9.User Agent 헤더정보에 따라 스마트폰용, 데스크탑용 페이지가 달라진다. UserAgent를 바꾸면 막힌 URL도 뚫을 수 있다. 404이어도 파일을 가져오니까 일단 #res.raise_for_status()를 주석처리하고 진행한다. 그리고 해당 html 파일을 보면 코드가 짧고, 외계어가 쓰여진 것을 확인할 수 있다. 브라우저에 따라 UserAgent값이 다르다. 크롬으로 User agent string을 입력했을 때 익스플로러로 ~ 입력했을 때 크롬 브라우저에서 작업하므로 크롬용 UserAgent를 사용하자 headers코드를 추가해서 UserAgent를 넣어주자. 이제 관련 ~html파일을 열어보면 정상적으로 받아진 것을 볼 수 있다. 10. 네이버 웹툰 크롤링 2020. 8. 27.
[나도코딩] 파이썬 코딩 무료 강의 (활용편3) - 웹 크롤링? 웹 스크래핑! 1 : HTML, X-Path, Request, re(정규식) 크롤링 : 웹에서 허용된 링크를 따라가면서 마주잡이로 끌어옴 스크래핑 : 필요한 것만 뽑는 것 HTML : 집의 골격 CSS : 인테리어, 예쁘게 JS : 내부 생활, 생동감있게 웹 스크래핑을 보면서 반드시 HTML의 골격, 구조를 이해해야만 한다. HTML에 대해 알아보자 Hyper Text Markup Language X Path에 대해 알아보자 unique한 값으로 간편하게 찾는 경로를 의미함 1. 전체 경로를 써서 찾는 경우 왜냐? 비슷한 태그, 엘리먼트 중 어떤 것을 지칭하는지 명확하게 하기 위함 위처럼 특정하기 위해서 길게 쓰는 경우도 있지만 2. 클래스,id 속성 등의 unique한 특징으로 찾는 경우 unique한 값으로 줄여서 쓰는 경우도 있다. 일반적으로는 id, class속성으로 특징.. 2020. 8. 26.
생활코딩_Tensorflow_부록2_BatchNormalization layer 보다 학습이 잘되는 모델 만들기 보스턴 집값 모델(회귀모형)로 테스트해보자 import tensorflow as tf import pandas as pd 파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv' 보스턴 = pd.read_csv(파일경로) # 종속변수, 독립변수 독립 = 보스턴[['crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax', 'ptratio', 'b', 'lstat']] 종속 = 보스턴[['medv']] print(독립.shape, 종속.shape) 기존 모델 # 2. 모델의 구조를 만듭니다 # 히든레이어 3개. .. 2020. 8. 21.
반응형