728x90

IT/언어 133

[python] python 인스턴스 변수와 클래스 변수

클래스가 가지는 변수에는 클래스 변수와 인스턴스 변수 두 종류가 존재한다. 이 포스팅에서는 변수의 선언 방법이나 차이점에 대해 설명한다. 1. 인스턴스 변수란 인스턴스변수란 각각의 인스턴스 마다 독립한 변수이다. 예를 들어, 클래스는 몇 개의 인스턴스를 생성하는 것이 가능하지만, 각각의 인스턴스 변수는 다른 것으로 취급하는 변수에 값을 대입해도, 인스턴스마다 각각의 값을 보존되어 있다. 1) 인스턴스 변수의 선언과 접근 방법 인스턴스 변수를 만드는 경우는 클래스 내의 메소드에 아래와 같이 작성한다. 일반적으로 인스턴스 변수의 생성은 생성자 클래스 __init__()내부에서 이루어진다. self.인스턴스변수 = 값 또한, 인스턴스 변수에 접근할 때는 아래와 같이 작성한다. self.인스턴스변수 2) 인스턴..

IT/언어 2020.08.23

[python] python의 변수 사용 범위 정리 (2)

지난번에 이것 저것 찾아가면서 나름대로 python 변수와 스코프에 대해 정리해봤는데, 여전히 머릿속에 의문이 가시질 않아서 다른 포스팅을 찾아서 재정리한다. 1. 이름공간(네임스페이스)이란? - 이름공간이란 변수가 소속되어 있는 영역이다. - 보통 변수에 따라 구분된다. - 이름공간에서는 변수와 객체의 상대관계는 사전으로 보존되어 있다. (여기서 '사전'은 locals()함수로 확인 가능하다.) - 모듈을 가진 이름공간을 global이라고 말하고, 어디에서든 globals()로 확인 가능하다. - global은 같은 모듈내라면 어디에서든 접근할 수 있다. 예를 들어, def a(): # 함수 a 내부의 이름 공간 l = 0 s = 'apple' def b(): # 함수 b내부의 이름 공간 m = 1 t..

IT/언어 2020.08.21

[python] python의 함수 인수(인자) 정리

1. 함수를 사용할 때 번호 Syntax 기능 1 func(value) 보통의 호출로, 함수 호출과 인수의 위치가 짝이 됨 2 func(name = vlaue) 키워드에 대응하는 함수 호출 3 func(*iterable) iterable한 것을 전개하여 함수 호출 4 func(**dict) dict를 key,vlaue로 전개해 함수 호출(2의 인수를 dict로하여 전달) 2. 함수를 정의할 때 번호 Syntax 기능 1 def func(name) 보통의 함수정의, 함수호출과 인자의 위치가 짝이됨 2 def func(name=value) 인수에 초기값을 설정 3 def func(*name) 인수를 튜플로 함 4 def func(**name) 인수를 dictionary로 함 5 def func(*arg, n..

IT/언어 2020.08.19

[python] python의 변수 사용 범위 정리 (1)

먼저, 이 글에서 자주 사용될 단어인 글로벌 변수와 로컬 변수에 대한 간략한 정의에 대해 알아보자. 글로벌 변수(전역변수)는 함수 외부에서 선언된 변수로, 프로그램 전체에서 접근할 수 있는 변수입니다. 로컬 변수(지역변수)는 함수 내부에서 선언된 변수로, 함수가 실행되면 만들어지고 함수가 종료되면 소멸하는 변수입니다. 함수 외부에서는 접근할 수 없습니다. 1. 글로벌 변수와 로컬 변수 Python은 함수 내에 변수를 호출할 때, 글로벌로 이미 정의되어있는 경우는 글로벌 변수가 사용된다. global_var = "Global Varibale" def get_global(): local_var = global_var return local_var print(get_global()) >>> Global Var..

IT/언어 2020.08.18

[python] python의 sort함수에 사용되는 lambda에 대한 이해

이 포스팅에서는 python의 sort함수에 사용되고 있는 'lambda'에 대해 소개한다. 1. 사전형이나 리스트 형을 sort할 때 아래와 같은 형식을 자주 마주친다. 사전형이나 리스트 형을 sort하는 경우가 많을 것으로 생각되는데, 그 때 sorted(d.items(), key=lambda x: x[1]) 위와 같은 코드를 본 적이 있지 않은가? 나는 자주 보았다. 위의 예에서는 사전의 value를 원래대로 정렬하고 있다. 스스로도 정렬하고 싶을 때 자주 사용하지만, 의미를 잘 모른채 사용해왔다. 이대로는 위험하다고 생각하여 조사해보았다. 2. 그나저나 lambda란 무엇인가? lambda는 무명함수라고 불리며 그 이름대로 이름 없는 함수를 작성할 때 사용한다. 예를 들어 아래의 예에서는 lamb..

IT/언어 2020.08.17

[python/numpy] Numpy의 데이터형 dtype과 astype를 사용한 변경(캐스트)

Numpy배열 ndarray는 dtype으로 저장되어, np.array()로 ndarray오브젝트를 생성할 때 지정하거나 astype()메소드로 변경하거나 하는 것이 가능하다. 기본적으로 하나의 ndarray오브젝트에 대해 하나의 dtype가 설정되어 있으며, 모든 요소가 같은 데이터 형이 된다. 하나의 ndarray로 복수의 데이터형으로 다루기 위한 Structured Data(구조화 데이터)라는 것도 존재하지만 여기서는 다루지 않는다. 참고로 복수의 데이터형을 포함한 배열 (수치의 열 또는 문자열의 열을 포함한 2차원 배열 등)을 처리할 때 pandas가 편하다. ​ 여기서는, 아래의 내용에 관련해서 설명한다. 1. Numpy의 주요 데이터형 dtype 2. 숫자형이 취할 수 있는 범위 (최소값, 최..

IT/언어 2020.06.05

[python] 머신러닝을 위한 Python(8) ; Data Cleansing

1) Data quality problems - 데이터의 최대/최소가 다름 -> Scale에 따른 y값에 영향 - Ordinary 또는 Nominal한 값들(범주형 데이터)의 표현은 어떻게? - 잘못 기입된 값들에 대한 처리 - 값이 없을 경우는 어떻게? - 극단적으로 큰 값 또는 작은 값들은 그대로 놔둬야 하는가? 2) Data preprocessing issues 기본적으로 아래의 세 가지에 대해 전처리를 한다. - 데이터가 빠진 경우 (결측치의 처리) - 라벨링된 데이터(category) 데이터의 처리 - 데이터의 scale의 차이가 매우 크게 날 경우 3) Missing Values 데이터가 없을 때 할 수 있는 전략은 아래와 같다. ◆ 데이터가 없으면 sample을 drop ◆ 데이터가 없는 최..

IT/언어 2020.06.05

[python] 머신러닝을 위한 Python(7) ; Data Handling - Pandas # 2

1) Groupby 1 ​ (1) Groupby - SQL groupby 명령어와 같음 - split => apply => combine 과정을 거쳐 연산 df.groupby("묶음의 기준이 되는 컬럼")["적용받는 컬럼"].적용받는연산() ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'], 'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2], 'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017], 'Points':[8..

IT/언어 2020.06.05

[python] 머신러닝을 위한 Python(6); Data Handling - Pandas # 1

1) Pandas ​ (1) Pandas란 구조화된 데이터의 처리를 지원하는 Python라이브러리 = Python계의 엑셀 ​ (2) Pandas의 특징 - 구조화된 데이터의 처리를 지원하는 Python 라이브러리 - 고성능 Array계산 라이브러리인 Numpy와 통합하여, 강력한 "스프레드시트"처리 기능을 제공 - 인덱싱, 연산용 함수, 전처리 함수 등을 제공함 ​ (3) 데이터 로딩 import pandas as pd # 라이브러리 호출 data_url = "http://~" df_data = pd.read_csv(data_url, sep="\s+", header = None) # csv타입 데이터 로드, separate는 빈 공간으로 지정하고, Column은 없음 df_data.head() #처음 ..

IT/언어 2020.06.04

[python] 머신러닝을 위한 Python(5) ; Data handling - Numerical Python

1) Numpy - Numerical Python - 파이썬의 고성능 과학 계산용 패키지 - Matrix와 Vector와 같은 Array 연산의 사실상의 표준 ​ (1) Numpy의 특징 - 일반 List에 비해 빠르고, 메모리 효율적 - 반복문 없이 데이터 배열에 대한 처리를 지원 - 선형대수와 관련된 다양한 기능을 제공함 - C, C++, 포트란 등의 레거시 언어와 통합을 하여 개발이 가능함 ​ (2) ndarray - Numpy의 가장 기본이 되는 단위 ​ (3) Array creation import numpy as np test_array = np.array(["1","4",5,8], float) print(test_array) type(test_array[3]) >> [1. 4. 5. 8.] ..

IT/언어 2020.06.04
728x90