Programming/Python

Programming/Python

Opencv 제대로 쓰기[0] - Opencv-python 설치 및 환경설정

안녕하세요. 이번 포스팅부터는 영상 처리 라이브러리 중 아주 유명한 Opencv 설치 및 활용법을 알아보도록 하겠습니다. 해당 포스팅은 opencv tutorial을 참고하여 만들어집니다. 오늘은 간단하게 설치 및 간단한 테스트만 진행해보도록 하겠습니다. 파이썬으로 진행할 예정이기 때문에 새로운 가상환경을 만들어보도록 하겠습니다. conda 관련 명령어 및 가상환경 생성 방법은 제가 이전 포스트에서 자세히 설명하였기 때문에 좀 더 자세한 설명을 원하시는 분들은 아래의 링크를 참조해주시길 바랍니다. 아나콘다 활용하기 - 가상환경 안녕하세요. 오늘은 아나콘다를 설치를 한 뒤 환경설정을 하는 법에 대해서 알아보도록 하겠습니다. 기본적으로 아나콘다를 설치하게 되면 "base" 라는 가상환경이 자동으로 생성되고 ..

Programming/Python

Sympy 알고 쓰자 - polynomial Simplify

안녕하세요. 지난 포스팅에 이어서 오늘은 다항식과 유리식에 관련된 simplify 함수들에 대해서 알아보겠습니다. 1. expand expand 함수는 주어진 다항식을 전개하는 함수입니다. 예를 들어서 $(x + 1)^{2} = x^{2} + 2x + 1$과 같이 말이죠. 두 말할 필요없이 몇 가지 예제를 보시면 바로 알 수 있습니다. 이 뿐만 아니라 아래와 같이 더 복잡한 다항식 수식들도 전개를 해볼 수 있습니다. 2. factor factor 함수는 흔히 말하는 "인수분해"를 해주는 함수입니다. expand 함수를 반대로 수행하는 함수라고 생각하시면 될 거 같습니다. 그렇다면 expand 함수의 결과를 이용해서 factor 함수를 적용해보도록 하겠습니다. 위의 결과부터 하나씩 보시면 위에서 2번째까지..

Programming/Python

Sympy 알고 쓰자 - Common Simplification

안녕하세요. 지난 포스팅의 Sympy 알고 쓰자 - 기본 연산에서는 심파이에서 사용하는 대표적은 연산들에 대해서 알아보았습니다. 오늘 포스팅은 주어진 수식을 간단하게 만드는 방법에 대해서 알아보겠습니다. 예를 들어 $\cos^{2}{x} + 2\sin^{2}{x}$라는 수식은 $\cos^{2}{x} + \sin^{2}{x} = 1$이라는 성질을 이용하여 $\sin^{2}{x} + 1$으로 간단하게 만들 수 있습니다. 이를 심파이에서는 아래와 같이 쓸 수 있습니다. x= sp.symbols("x") expr = cos(x)**2 + 2*sin(x)**2 simplify(expr) 즉, "simplify" 함수 안에 간단하게 만들고 싶은 함수를 입력해주면 됩니다. 그러면 이번에는 약분을 보도록 하겠습니다. ..

Programming/Python

Sympy 알고 쓰자 - 기본 연산

안녕하세요. 지난 포스팅에서 말씀드렸다싶이 심파이는 사람의 입장에서 봤을 때 매우 직관적 문법을 가지고 있기 때문에 실질적으로 사용하기에 더 편한 라이브러리입니다. 오늘은 기초적인 문법과 심파이에서 지원하는 연산에 대해서 알아보도록 하겠습니다. 일단, 다시 한번 말씀드리지만 심파이는 기호 기반 수학 라이브러리이기 때문에 저희는 변수를 기호로써 선언해주어야합니다. 이를 위해서는 아래와 같이 변수를 선언해주면 됩니다. import sympy as sp x, y, z = sp.symbols("x y z") 그러면 일단 기초연산을 할 준비는 끝났으니 바로 본격적으로 시작해보도록 하겠습니다. 1. 대입(Substitution) 대입은 아주 간단한 개념이죠. $x^{2} + x + 1 = 10$과 같은 식에서 $x..

Programming/Python

Sympy 알고 쓰자 - 소개

안녕하세요. "알고 쓰자" 시리즈의 새로운 파이썬 라이브러리를 소개해드리겠습니다. 바로 Sympy입니다!! Symbolic Python의 준말이죠. 기호(symbolic) 기반 수학 라이브러리라고 보시면 될 거 같습니다. 수학 라이브러리인것을 알겠는데 "기호"라는 단어가 조금 생소할 수 있을 거 같습니다. 일단, 저희가 일상생활에서 $y = x^{2}$라는 함수를 미분한다고 가정하겠습니다. 그러면 저희는 $y^{'} = 2x$라는 답을 바로 낼 수 있죠. 이게 가능한 이유가 저희는 기본적으로 $x$라는 기호를 $-\infty ~ +\infty$까지의 변수로 보고 사용하기 때문입니다. 하지만, 문제는 파이썬에서 라이브러리 없이 미분을 한다고 가정해보겠습니다. 그러면, 애초에 컴퓨터이기 때문에 무한의 영역으..

Programming/Python

넘파이 알고 쓰자 - Linear Algebra Library 3 : 행렬의 고윳값과 고유벡터

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - 아인슈타인 표기법에서는 벡터 및 행렬 간 곱셈을 수행하는 다른 방법에 대해서 알아보았습니다. 오늘 포스팅에서는 행렬로부터 고윳값과 고유벡터를 추출하는 함수에 대해서 소개해드리도록 하겠습니다. 오늘 중점적으로 확인해보실것은 추출하는 함수에 대해서만 보시고 고윳값과 고유벡터에 대한 성질은 나중에 선형대수학을 정리하면 다루도록 하겠습니다. 먼저 가장 간단한 고윳값과 고유벡터를 추출하는 방법은 $\text{det}\left(A - \lambda I\right) = 0$을 만족하는 고윳값 $\lambda$를 구한 뒤 고윳값 $\lambda$에 대응되는 고유벡터 $\nu$는 $A\nu = \lambda \nu$를 만족하는 벡터를 찾으면 됩니다. 그런데 이 계산법은 기..

Programming/Python

넘파이 알고 쓰자 - Linear Algebra Library 2 : 아인슈타인 표기법

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - Linear Algebra Library 1 : Matrix&Vector Product에서는 넘파이의 선형대수 라이브러리에 구현되어 있는 다양한 행렬/벡터곱을 알아보고 dot 함수와 matmul 함수의 차이점에 대해서 분석해보았습니다. 오늘도 이어서 행렬/벡터곱과 관련된 내용이지만 이를 다른 표기법으로 작성하는 아인슈타인 표기법에 대해서 알아보도록 하겠습니다. 본격적으로 시작하기 전에 아인슈타인 표기법에 대해서 간단하게 알아보록 넘어가도록 하겠습니다. 아인슈타인 표기법의 정확한 정의는 아래의 링크를 참조해주시길 바랍니다. 링크 아인슈타인 표기법 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 아인슈타인 표..

Programming/Python

넘파이 알고 쓰자 - Linear Algebra Library 1 : Matrix&Vector Product

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - 덧셈, 곱셈, 뺄셈(Sums, products, differences)에서 중점적으로 확인한 것은 기존의 파이썬의 for loop를 이용한 연산과 math module을 이용한 연산, numpy module을 이용한 연산 사이의 속도를 비교하였습니다. 오늘은 넘파이 라이브러리에서도 가장 중요한 비중을 차지하고 있는 선형대수 라이브러리를 소개하도록 하겠습니다. 다른 프로그래밍 언어에서도 선형대수적인 기법을 제공하기 위해서 많은 방법이 고안되고 있습니다. 대표적으로 BLAS(Basic Linear Algebra Subprogramming), LAPACK(Linear Algebra PACKage) 등이 있습니다. 넘파이의 선형대수 라이브러리는 BLAS와 LAPA..

Johns Hohns
'Programming/Python' 카테고리의 글 목록 (2 Page)