반응형

Python 21

NumPy의 기초(5)

집한 관련 함수 NumPy는 1차원 ndarray를 위한 몇가지 기본적인 집합 연산을 제공한다. 아마도 가장 자주 사용하는 함수는 배열 내에서 중복된 원소를 제거하고 남은 원소를 정렬된 형태로 반환하는 np.unique일 것이다. in : names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe']) np.unique(names) out : array(['Bob', 'Joe', 'Will'], dtype=' 0, 1, -1) walk = steps.cumsum() in : walk.min() out : -..

머신러닝/numpy 2021.10.06

NumPy의 기초(4)

배열을 이용한 배열지향 프로그래밍 NumPy 배열을 사용하면 반복문을 작성하지 않고 간결한 배열 연산을 사용해 많은 종류의 데이터 처리 작업을 할 수 있다. 배열 연산을 사용해서 반복문을 명시적으로 제거하는 기법을 흔히 벡터화라고 부르는데 일반적으로 벡터화된 배열에 대한 산술 연산은 순수 파이썬 연산에 비해 2~3배에서 많게는 수십,수백 배까지 빠르다. 처음으로 다룰 브로드캐스팅은 아주 강력한 벡터 연산 방법이다. 예를 들어 값이 놓여 있는 그리드에 sqrt(x^2 + y^2)을 계산을 한다고 하자. np.meshgrid 함수는 두 개의 1차원 배열을 받아서 가능한 모든(x,y)짝을 만들 수 있는 2차원 배열 두개를 반환한다. in : points = np.arange(-5,5,0.01) # -5부터 4..

머신러닝/numpy 2021.10.06

NumPy의 기초(1)

NumPy NumPy의 정의 NumPy는 Numerical Python의 줄임말로, 파이썬에서 산술 계산을 위한 가장 중요한 필수 패키지중 하나이다. 과학 계산을 위한 대부분의 패키지는 NumPy의 배열 객체를 데이터 교환을 위한 공통 언어처럼 사용된다. 효율적인 차원 배열인 ndarray는 빠른 배열 계산과 유연한 브로드캐스팅 기능을 제공한다. 반목문을 작성할 필요 없이 전체 데이터 배열을 빠르게 계산할 수 있는 표준 수학 함수 배열 데이터를 디스크에 쓰거나 읽을 수 있는 도구와 메모리에 적재된 파일을 다루는 도구 선형대수, 난수 생성기, 푸리에 변환등 가능 C, C++, 포트란으로 작성한 코드를 연결할 우 있는 C API 대부분의 데이터 분석 애플리케이션에서 중요하다고 생각되는 기능이다. 벡터 배열 ..

머신러닝/numpy 2021.09.09

Python How import statement finds modules and packages

Python How import statement finds modules and packages 파이썬은 module과 package를 어떻게 찾을까? 그 방법에 대해서 알아보자. Import Search 순서 예를 들어, abc 라는 package가 있다고 가정해 보자. 그리고 abc package를 사용하려면 다음처럼 import 해야 한다. import abc 여기서 abc는 단순한 파이썬 파일(모듈일 경우) 이거나 파이썬 파일들을 담고 있는 디렉토리(package의 경우) 이다. 그러므로 해당 파일이나 디렉토리가 어디있는지 파이썬이 찾을 수 있어야 import가 가능할것이다. 파이썬은 다음 3가지 장소를 순서대로 보면서 찾는다. sys.modules built-in modules sys.path..

Python/Python기초 2021.09.09

Python Module & Packages

Python Module & Packages Python Module & Packages에 대해서 알아보자. 파이썬에서 모듈은 변수나 함수 그리고 클래스 등을 모아놓은 파일이다. 따로 모듈로 모아놓은 이유는 다음과 같다. 다른 파일에서 재사용이 가능하게 하고 전체 코드가 한 파일에 넣기에는 너무 커졌을때 여러 파일로 나누어서 정리를 하기 위해서 예를 들어, List의 총 요소 개수를 알고 싶으면 len 함수를 사용하면 된다. my_list = [1, 2, 3, 4, 5] my_list_length = len(my_list) print(my_list_length) 하지만 len 함수를 직접 구현한적은 없다. 파이썬에서 이미 모듈로 구현해놓았음으로 그냥 가져다 쓰면 되는 것이다. 이렇게 모듈은 다른 사람들이..

Python/Django기초 2021.09.09

Python Class

Python Class Python Class에 대해서 알아보자. class의 사전적 의미는 굉장히 많이 있다 그 중 코딩에서 사용되는 class의 의미는 '부류'에 가깝다. 부류의 뜻은 "동일한 범주에 속하는 대상들을 일정한 기준에 따라 나누어 놓은 갈래" 라는 뜻이 있다. 즉 공통점이 많은 것들을 가리켜 "같은 부류" 라고 한다. 예를 들어 유재석 양세형 유병제 지석진 등의 공통점은 4사람 다 '코미디언'이란 직업을 가지고 있다. 이때 '코미디언'이 class가 된다. 그러나 '코미디언'이라는 것은 개념일 뿐이다. 코미디언의 실체 (instanace) 는 지석진, 유재석, 양세형, 유병재이다. 이 실체(instance)들을 object(객체) ..

Python/Python기초 2021.09.09

Python Scope

Python Scope Python Scope에 대해서 알아보자 scope는 범위라는 뜻이다. 프로그래밍 언어에서는 scope는 어떠한 객체(변수,함수 등)가 유효한 범위를 말한다. 범위를 벗어나면 해당 객체는 사용이 불가능한다. Python에서 scope는 항상 객체가 선언된 지점에서 위로는 상위 객체 까지, 아래로는 모든 하위 객체들과 그 안에까지 범위이다. 범위는 크게 4가지이다. Local Scope Enclosed Scope Global Scope Built-in Scope local이 제일 범위가 제한적이고 Built-in이 가장 범위가 넓다. 1. Local Scope Local scope을 가지고 있는 변수나 함수 혹은 객체는 이름 그대로 특정 범위에서만 유효하다. 주로 함수 안에서 선언된..

Python/Python기초 2021.09.09

Python Nested Function

Python Nested Function Python 중첩함수는 왜 쓰는 것일까? 가독성 Closure 에 대해서 알아보자. 함수를 중첩해서 쓰는것이 Nested Function함수이다. 일명 중첩 함수! def parent_function(): def child_function(): print("this is a child function") child_function() parent_function() 위 와 같이 나타낼수 있다. 그럼 중첩 함수는 왜 쓰는 것일까? 가독성 Closure 1. 가독성 함수를 사용하는 이유는 반복되는 코드블럭을 함수로 정의해서 효과적으로 코드를 관리하고 가독성을 높이기 위함이다. 중첩 함수도 사용하는 이유는 동일하다. 함수 안의 코드 중 반복되는 코드가 있다면 중첩 함수..

Python/Python기초 2021.09.09

Python Decorator

Python Decorator Python Decorator에 대해서 알아보자. Decorator란? 사전적 의미로 장식또는 장식하는 사람이라는 뜻을 가지고 있다. 그럼 Python에서 무엇을 장식하기 위해서 Decorator를 사용할까? 그건 바로 Function 즉 함수를 사용할때 쓰인다. 어떻게 사용되는지 확인해보자. 예를들어 로또 번호를 찍어주는 업체가 있다고 가정하자. 이 로또업체는 무료회원과 유료회원이 나뉘어져 있으며 보내는 번호가 다르다. 이럴땐 문자를 유료회원가 무료회원을 나눠서 보내줘야한다. def jackpot_lotto_information(): return "계시가 내려졌습니다. 1 5 12 15 28 35번을 찍으세요!" 위 문자는 유료회원만 받을수 있다고 가정해보자. 그러면 유료..

Python/Python기초 2021.09.09

인증, 인가에 대해서 알아보자.

인증, 인가에 대해서 알아보자. 인증(Authentication)이란 무엇인가? 인증은 사용자를 식별하기 위해 하는것이 인증이라고 한다. 쉽게 말하면 사용자가 맞는지 틀리는지 확인하는 과정이라고 생각하면 된다. 예를 들어 회원가입과 로그인이 대표이다. 인증을 하려면 일단 사용자에 대한 정보를 알아야 하는데 그 정보를 아무렇게나 저장하게 되면 정보를 해킹당할 수 있다. 그것을 방지하기위한 가장 기본이 되는것이 비밀번호이다. 하지만 이 비밀번호를 입력받은 그대로 저장을 하게 되면 해킹을 당하기 쉽다. 해커가 DB를 해킹해도 쉽게 암호를 읽지 못하게 해야한다. 그럼 어떻게 비밀번호를 관리를 해야하나? 해커가 DB를 해킹해도 쉽게 암호를 읽지 못하게 암호화를 한다. 예를 들어 1234라는 비밀번호가 DB에 저장..

Web기초 2021.09.09
반응형