[Python] 연습 35

[AIFB] Python Basic

학습목표 데이터 분석을 위해 필요한 Python 데이터 관련 함수를 이해하기 why Python? - AI packages, libraries 활용 - 데이터 분석, 전처리를 보다 직관적이고 쉽게 - AI 알고리즘 활용 호환 데이터 관련 함수 사용 이해 keywords: tuple, slicing, list, indexing, dictionary indexing: 특정한 값을 뽑아내는 역할 indexing 예시 인덱싱의 형태 x[번호] > Python은 숫자를 0부터 셈 > x[0]는 'R'을 x[-1]은 '!'를 불러올 수 있음. 뒤에서부터 읽는 경우는 -(마이너스 기호)를 붙여줌. Slicing: 한 문자만이 아니라 단어를 뽑아내는 능력 슬라이싱의 형태 x[시작번호:끝번호] > 단, 번호를 지정할 때..

[Python] 연습 2022.08.12

텐서플로로 간단한 머신러닝 실습하기

이번 포스팅에서는 머신러닝의 흐름을 학습하고 간단하게 모델을 만들어 본 후 예측까지 실습을 진행해보겠습니다. 머신러닝의 흐름 막연히 머신러닝이라하면 어렵게만 느껴질수도 있지만, 실제로 그 흐름을 이해하고 나면 크게 어렵게 느껴지지 않을 것입니다. 다만 머신러닝을 이해하기 전에 기본적으로 데이터에 대한 이해가 어느정도 뒷받침이 되어 있다면 더욱 좋을 것입니다. 머신러닝 모델을 만드는 과정을 4개의 과정으로 단순화 해보겠습니다. 1단계: 과거의 데이터를 준비합니다. 이때의 과거 데이터는 독립변수와 종속변수가 있는 지도학습(Supervised Learning)이 가능한 데이터라고 하겠습니다. 2단계: 모델의 구조를 만듭니다. 우리는 모델을 만들기 위해서 텐서플로(tensorflow)의 케라스(keras)를 사..

[Python] 연습 2022.07.11

[Python] NumPy 배열 인덱싱, 슬라이싱 연습

기본적으로 자료구조란 데이터의 묶음과 그 묶음을 관리할 수 있는 바구니를 의미합니다. 데이터 분석을 위해서 자료구조를 사용하지만 자료구조 내용에 접근하는 방법을 알아두는 것은 반드시 필요하므로 이번 포스팅에서는 기본적인 인덱싱과 슬라이싱을 연습하기 위한 코드로만 구성하였습니다. NumPy의 배열(Array)의 인덱싱과 슬라이싱은 기존의 list 방법과 동일합니다. 해당 연습을 하기 전에 Numpy에 대한 학습이 필요한 경우 다음의 포스팅을 참고해주세요. 2022.07.06 - [[Python] 연습] - [Python] numpy 기본 정리 Prerequisite import numpy as np 연습용 배열 생성 # 연습용 array 생성 test_arr = np.arange(5, 16) test_ar..

[Python] 연습 2022.07.07

[Python] numpy 기본 정리

NumPy란? NumPy는 Numeric Python이라는 뜻입니다. 이름처럼 고성능 수치 연산에 효율적으로 사용 가능한 모듈로 배열과 데이터 집계, 난수 생성 등 여러 유용한 함수를 제공합니다. NumPy 배열만들기 numpy의 배열은 기본 파이썬 list보다 더 간편하고 빠르게 사용할 수 있습니다. 단, numpy 배열에서 주의할 점은 자료형이 같은 item만 넣을 수 있다는 것입니다. 1차원 배열을 만들기 위해서 numpy 패키지를 import하고 배열을 만들어 보겠습니다. import numpy as np numbers = np.array(range(1, 11), copy=True) numbers2 = np.array([2, 4, 6, 8, 10]) print(numbers) print(numbe..

[Python] 연습 2022.07.06

[Python] enumerate () 함수

파이썬의 내장 함수 중에 enumerate() 함수는 반복 가능한 객체에 들어있는 요소와 인덱스를 튜플로 묶어서 객체를 반환해주는 함수입니다. 이 때 enumerate()함수에는 (반복 가능한 객체)를 넣어주게 됩니다. 간단하게 for 반복문을 사용해서 확인해볼 수 있습니다. 1) 일반적인 for 반복문으로 요소 출력하기 일반적으로 for 반복문을 통해서 리스트의 각 요소를 출력하게 되면 아래와 같은 결과를 확인할 수 있습니다. 2) enumerate() 함수를 활용해서 for 반복문 결과 확인 이렇게 enumerate() 함수를 사용하면 인덱스와 요소를 함께 출력할 수 있습니다. 참고로 인덱스 시작 번호를 2부터 시작하고 싶다면 아래와 같이 작성해주면 됩니다. # index의 start를 2부터 for..

[Python] 연습 2022.06.30

Mac에서 Python venv 가상환경 생성

파이썬 가상환경이란? 간단히 말해서 가상 환경은 독립된 공간을 만들어주는 것이다. 프로젝트를 여러개 개발할때 종종 패키지 문제가 발생할 수 있는데, 프로젝트마다 사용해야하는 버전이 달라야 할 수도 있고 충돌을 일으킬 소지가 생길 수도 있다. 따라서 별도로 독립된 가상 환경을 구성하여 사용하는 것이 필요하다. 가상 환경 생성 1. 가상 환경을 만들 위치에 폴더를 생성 원하는 곳에 폴더를 직접 생성해도 되고, 터미널에서 생성해도 상관없다. 일단 폴더만 만들면 된다. 폴더명도 원하는대로 하면된다. 예시로 venvs 폴더를 생성하였다. 2. 가상 환경 만들기 아래의 코드를 입력하여 위에서 생성한 디렉토리로 위치를 변경한다. 아니면 생성한 경로에서 바로 terminal을 열어도 된다. cd venvs 이후 아래의..

[Python] 연습 2022.06.09

[Python] 지역변수, 전역변수, 클로저(Closure)

지역변수와 전역변수 지역변수(local variable): 함수 안에서 선언되는 변수 전역변수(global variable): 함수 외부에서 선언되는 변수 name = 'simon' def my_name(): name = 'kihun' print(name) my_name() # 결과: kihun print(name) # 결과: simon my_name() 함수 내부에서 선언된 name변수는 함수를 호출하였을때, ‘kihun’이라는 이름을 출력하지만 지역변수이므로 함수 외부에서의 print(name)에는 영향을 미치지 않는다. print(name) 함수는 전역변수로 선언된 name = ‘simon’의 ‘simon’을 출력하고 있다. 만약, 함수 내부에서 선언된 name 변수가 전역변수로 사용되기 위해서는 ..

[Python] 연습 2022.05.28

[Python] 클래스와 상속

상속 다른 클래스의 기능을 그대로 물려받을 수 있다 → 기존 클래스에 기능 일부를 추가하거나, 변경하여 새로운 클래스를 정의한다. 기존 클래스는 [Parent, Super, Base class], 상속 받는 새로운 클래스는 [Child, Sub, Derived class]라고 부른다. 1. Parent 클래스를 정의 class Parent: def __init__(self): self.i = 10 2. Parent 클래스의 인스턴스를 생성 father = Parent() print(father.i) # 결과: 10 3. Child 클래스를 정의 class Child(Parent): # 상속 pass c = Child() print(c.i) # 결과: 10 Child 클래스는 Parent 클래스로부터 상속..

[Python] 연습 2022.05.27

[Python] 결측값 처리하기(dropna)

결측값이 있는 행이나 열을 삭제하고자 하는 경우에는, dropna() 함수를 사용하면 된다. DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) Parameter 설명 axis 0 또는 'index'로 하면, 행에 대한 제거 (디폴트) 1 또는 'columns'로 하면, 열에 대한 제거 how 'any'는 행 혹은 열 방향으로 결측값이 하나라도 있으면 제거 (디폴트) 'all'은 모든 값이 결측값이면 제거 thresh 최소 n개가 결측값이 아니면 그 행(또는 열)을 제거하지 않음 예를들어 thresh = 4로 지정하면 그 행(또는 열)에 최소한 4개의 값은 결측값이 아닌 경우를 제외하고 나머지는 다 제거 subset 특..

[Python] 연습 2022.03.27

[Python] Series

파이썬에서의 Series는 어떤 데이터 타입이든 보유할 수 있는 1차원 배열 자료구조이다. Series는 index, value, data type 집합으로 구성되고 리스트 자료형으로 생성이 가능하다. # Series를 생성하기 위해서 pandas를 먼저 import한다. import pandas as pd # Series 생성 mySeries1 = pd.Series([2, 6, 4, 8]) print(mySeries1) 위의 결과를 보면 각 값에 대한 index는 0, 1, 2, 3으로 부여된 것을 알 수 있다. 아래와 같이 index, value, dtype에 대한 내용도 확인이 가능하다. # Series에 저장된 값 확인 print(mySeries1.values) # 결과:[2 6 4 8] # In..

[Python] 연습 2022.03.26

[Python] 데이터 정규화

데이터를 분석하다보면 정규화가 필요한 경우를 종종 마주하게 된다. R에서도 정규화에 대한 내용을 다루었지만 파이썬을 이용해서 정규화를 쉽게 하는 방법에 대해서 알아보고자 한다. scikit-learn의 MinMaxScaler를 통해서 정규화 하는 예시는 아래와 같다. from sklearn.preprocessing import MinMaxScaler data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]] scaler = MinMaxScaler() print(scaler.fit(data)) # 결과: MinMaxScaler() print(scaler.transform(data)) # 결과: [[0. 0. ] [0.25 0.25] [0.5 0.5 ] [1. 1. ]] 처음에는 Mi..

[Python] 연습 2022.03.25

[Python] 판다스 특정 문자열 포함 판단하기

이번 포스팅에서는 데이터프레임의 열에 특정 문자열이 포함되었는지를 판단하고, 이 조건에 해당하는 행만 출력하는 방법을 알아보겠습니다. 이러한 경우에 사용할 수 있는 것이 str.contains( )입니다. 아래와 같은 예시 데이터를 통해서 코드를 실행해보겠습니다. 1. 하나의 열에서 특정 문자를 포함한 레코드만 출력하기 # 구매상품에 '투자'가 있는 레코드만 출력 df[df['구매상품'].str.contains('투자')] 구매상품에 '투자'라는 단어가 포함된 서적만 출력되었음을 알 수 있습니다. 2. 하나의 열에서 특정 문자를 포함한 레코드의 수를 구하기 # 구매상품에 '투자'가 포함된 레코드 수를 구하는 방법 len(df[df.구매상품.str.contains('투자')]) # 결과: 4 레코드의 수를..

[Python] 연습 2022.03.12

[Python] 판다스 문자열 구분자로 나누기

파이썬 판다스에는 문자열을 다룰 수 있는 여러 함수가 존재합니다. 그 중에서 자주 사용할 수 있는 것이 split()일 것입니다. str.split('구분자') 형식을 사용하면 쉽게 컬럼을 나눌 수 있습니다. 4가지 방법을 아래의 예시를 활용하여 연습해보겠습니다. 일단 아래의 예시 데이터를 가운데 공백을 구분자로 하여 '년월일'과 '시분' 정보로 구분해보겠습니다. - 방법1 이 방식은 문자열을 구분하여 발생하는 새로운 열을 직접 데이터프레임에 붙입니다. df['년월일'] = df['회원가입 정보'].str.split(' ').str[0] df['시분'] = df['회원가입 정보'].str.split(' ').str[1] df - 방법2 이 방법은 문자열을 구분하여 새로운 데이터프레임 형태로 바로 생성합니..

[Python] 연습 2022.03.11

[Python] Selenium Data Crawling 준비 (맥 용)

1. Selenium 설치 pip install selenium 2. 웹드라이버 준비(크롬 기준) 크롬 브라우저 버전 확인 브라우저 상단 주소표시줄 가장 우측 점 세개 클릭 → 가장 하단 '도움말' → 'Chrome 정보' 클릭해서 나오는 설정 화면에서 크롬 브라우저의 버전을 확인한다. 현재 사용 버전은 98.0.4758.80 이므로 해당 버전에 맞는 드라이버를 다운 받으면 된다. 크롬드라이버 다운로드 https://sites.google.com/chromium.org/driver/ 해당 주소에서 확인한 버전에 맞는 드라이버를 찾아서 다운받는다. 화살표로 표시한 다운로드에 들어가서 보면 최근 릴리즈부터 차례로 나와있으니 해당하는 버전에 맞게 다운받으면 된다. 리눅스, 맥, 윈도우에 맞게 .zip 파일을 ..

[Python] 연습 2022.02.17

[Python] 기초 문법 6

함수 def 함수이름(매개변수1, 매개변수2, ...): code ... return 함수의 형태 - parameter와 return이 존재 def add(x1, x2): y = x1 + x2 return y - return이 없는 함수 def noReturn(a, b): print(a + b) - parameter가 없는 함수 def noParam(): a = '매개변수가 없는 함수' return a noParam() # 매개변수가 없는 함수 - parameter와 return이 둘 다 없는 함수 def noBoth(): print('모두 없는 함수') noBoth() # 모두 없는 함수 매개변수의 수가 일정하지 않을 때 함수의 구현 '*'을 매개변수 앞에 사용함으로써 여러 개의 매개변수를 받을 수 있..

[Python] 연습 2022.01.08