본문 바로가기
반응형

분류 전체보기546

[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.
생활코딩_Tensorflow_Err 원 핫 인코딩시 데이터의 타입으로 인해 발생하는 에러 Err import pandas as pd # 파일 읽어오기 파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris2.csv' 아이리스 = pd.read_csv(파일경로) 아이리스.head() # 품종을 숫자로 표현했기에 범주형데이터 이므로 # 원핫인코딩 되지 않는 현상 확인 인코딩 = pd.get_dummies(아이리스) 인코딩.head() # 하지만 원핫인코딩 코드가 먹히지 않음 # 왜? 판다스는 read_csv로 읽어들일 때 숫자는 숫자로 인식하여 범주형인 것을 모르기 때문이다. # 그래서 범주형으로 변경하는 작업을 해야한다. # 이를위해, 아이리스 데이터 타입.. 2020. 8. 20.
생활코딩_tensorflow_Hidden Layer 네번째 딥러닝 - 신경망의 완성:히든레이어 - Tensorflow 1 수업소개 히든레이어와 멀티레이어의 구조를 이해하고, 히든레이어를 추가한 멀티레이어 인공신경망 모델을 완성해 봅니다. 강의 멀티레이어 신경망 실습 소스코드 colab | backend.ai 보스 opentutorials.org 히든레이어와 멀티레이어의 구조를 이해하고, 히든레이어를 추가한 멀티레이어 인공신경망 모델을 완성 기존에는 퍼셉트론 하나로만 구성되어 있었으나 이제는 퍼셉트론이 깊게 연결된 딥러닝 모델을 제작해본다. 퍼셉트론을 깊게 연결하는 방법은 간단하다. 기존 퍼셉트론을 여러개 연결하면 된다. 입력과 출력 사이에 퍼셉트론을 추가하면 된다. 현재 입력과 출력 사이에 하나의 층을 쌓아서 모델을 구성했다. 추가한 레이어는 5개의 노드.. 2020. 8. 20.
생활코딩_머신러닝개념_비지도학습/강화학습 어떤 대상들을 구분해서 그룹을 만드는 것이 군집화라면, 분류는 어떤 대상이 어떤 그룹에 속하는지를 판단하는 것이라고 할 수 있습니다. 배달 사업자 - 전국 고객, 1000만명 - 전국 고객의 위치(위도,경도) - 이 위치를 바탕으로 배달본부 설치 - 1000만명이 적절히 분포된 100개 그룹(군집)을 만드는 것 => 군집화 - 표의 숫자를 군집화시켜 보여주는 도구, 좌표평면 만약 행,열이 수백개라면? 어떻게 군집화시켜서 파악할 수 있을까? 바로 머신러닝, 그중에서 비지도 학습, 그중에서 군집화입니다. 군집화라는 도구에 1000만개의 관측치(행)를 입력하고 100개의 클러스터가 필요하다고 알려주면, 유사한 속성을 가진 관측치끼리 분류하여 총 100개의 클러스터를 만들어줍니다. 좌표상에서 가깝다는 것은 데이.. 2020. 8. 20.
생활코딩_Tensorflow_Iris_범주형(분류),분류 VS 회귀 분류는 확률예측 https://bit.ly/2DJ9TQJ 꽃잎의 여러 특징을 독립 변수로 하여 아이리스의 품종을 구분하는 모델을 구현한다. 아이리스 데이터의 종속변수는 수치형이 아닌 품종이니 범주형 데이터이다. 회귀와 분류를 나누는 차이는 종속변수의 데이터타입이다. 범주형 데이터는 다음 코드가 추가된다. 노란색은 범주형데이터를 위한 코드지만 pd.get_dummies(아이리스)는 무엇일까? 종속변수가 '품종'하나인데 왜 Dense(3)일까? 이전 수식에선 입력이든 출력이든 전부 다 숫자가 들어갔다. 그러나 종속변수의 값이 숫자가 아닌 범주형이기에 숫자가 아닌 것이 수식의 결과가 될 수는 없다. 범주형 데이터는 수식에 사용될 수 있도록 특정 과정을 거쳐야 한다. 범주들을 칼럼으로 만들어준다. 원핫인코딩을 .. 2020. 8. 18.
반응형