Python

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..

Programming/Python

넘파이 알고 쓰자 - 쌍곡선 함수(Hyperbolic functions)

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - 삼각 함수(Trigonometric functions)에 대해서 알아봤습니다. 오늘은 이에 이해서 쌍곡선 함수에 대해서 알아보도록 하죠. 기본적으로 쌍곡선 함수들의 정의는 아래와 같습니다. $$\sinh{x} = \frac{e^{x} - e^{-x}}{2}$$ $$\cosh{x} = \frac{e^{x} + e^{-x}}{2}$$ $$\tanh{x} = \frac{\sinh{x}}{\cosh{x}} = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}$$ 위 정의를 보셨다면 오늘 볼 내용은 아주 쉽습니다!! 바로 그래프와 함께 실습을 진행해보도록 하겠습니다. 1. numpy.sinh(x), numpy.cosh(x), numpy.tanh(x..

Programming/Python

넘파이 알고 쓰자 - 삼각함수(Trigonometric functions)

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - 문자열 정보 추출을 마지막으로 지금까지 넘파이를 활용한 문자열 함수를 알아봤습니다. 오늘부터는 넘파이에서 제공하는 중요한 수학 함수에 대해서 알아보도록 하겠습니다. 그 시작은 간단한 삼각함수입니다. 1. numpy.sin(x), numpy.cos(x), numpy.tan(x) 먼저 고등학교 때부터 쉽게 접할 수 있는 sine, cosine, tangent 함수입니다. 더 이상 말하면 입아프겠죠? x는 넘파이 배열로 각 원소를 적용하는 함수에 따라서 sine, cosine, tangent로 변환해줍니다. 그림과 함께 보도록 하겠습니다. x = np.linspace(-5, 5, 100) sin = np.sin(x) cos = np.cos(x) plt.plot(..

Programming/Python

넘파이 알고 쓰자 - 문자열 정보 추출

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - 문자열 비교에 이어서 문자열이 가진 여러가지 정보를 추출하는 방법이 대해서 알아보도록 하겠습니다. 오늘이 넘파이와 문자열과 관련된 마지막 포스팅이 될 거 같습니다. 파이썬을 해보신분들은 알겠지만 문자열을 이용해서 다양한 작업을 합니다. 그 중에서 자주 사용되는 count 함수는 서브문자열의 개수를 문자열에서 counting 해줍니다. 또한 find 함수와 index 함수의 경우에는 특정 문자열의 위치를 알려주기도 합니다. 이뿐만 아니라 훨씬 더 다양한 문자열 정보를 추출해볼 수 있습니다. 예를 들어서 문자열이 숫자로 이루어져 있는 지, 소문자로 이루어져 있는 지, 대문자로 이루어져 있는 지와 같이 상세한 정보도 알아볼 수 있습니다. 이제부터 본격적으로 하나..

Programming/Python

넘파이 알고 쓰자 - 문자열 비교

안녕하세요. 지난 시간의 넘파이 알고 쓰자 - 문자열 연산 2에서는 몇 가지 문자열과 관련된 연산들에 대해서 추가적으로 알아보았습니다. 오늘은 이에 이어서 문자열을 비교해주는 몇 가지 함수에 대해서 알아보도록 하겠습니다. 1. numpy.char.equal(x1, x2), numpy.char.not_equal(x1, x2) 이 함수들은 이름에서 보이다 싶이 두 문자열을 구성하는 각 문자를 비교하는 연산입니다. 간단한 예시를 들어서 설명해보도록 하겠습니다. numpy_string1 = np.array([["Hello", "my", "name", "is", "jane"]]) numpy_string2 = np.array([["Hello", "his", "name", "is", "mike"]]) np.char...

Programming/Python

넘파이 알고 쓰자 - 문자열 연산 2

안녕하세요. 최근 바빠서 포스팅을 못했는 데 오랜만에 진행해보도록 하겠습니다. 지난 포스팅 넘파이 알고 쓰자 - 문자열 연산 1에서 기존 파이썬에서 존재하는 문자열 연산을 넘파이를 이용해서 처리하는 방법에 대해서 알아보았습니다. 나중에 대용량의 문자열을 처리할 때 넘파이를 이용해서 처리한다면 for loop를 이용해서 하나하나 처리하는 것보다 넘파이의 vectorization을 통해서 더 빠르게 처리할 수 있겠죠? 오늘 포스팅에서도 이어서 확인해보도록 하겠습니다. 1.numpy.char.join(sep1, seq2) 파이썬에서 join 함수를 기억하시나요? 파이썬에서 문자열 리스트가 주어졌을 때 이들을 어떤 값을 사이사이에 넣고 하나의 큰 문자열로 합치는 메서드였습니다. 예를 들어, 아래와 같습니다. a..

Programming/Python

넘파이 알고 쓰자 - 문자열 연산 1

안녕하세요. 지난 포스팅의 넘파이 알고 쓰자 - Bit packing & output formatting에서는 마지막으로 몇 가지 남은 비트 연산에 대해서 알아보았습니다. 오늘은 넘파이에서도 문자열 연산을 할 수 있다는 것을 보여드리도록 하겠습니다. 다만, 넘파이에서는 문자열을 위한 함수를 굉장히 많이 지원하고 있기 때문에 조금씩 설명을 드리도록 하겠습니다. 오늘 설명드릴 함수들 중 몇 가지는 파이썬에서 기본적으로 제공하는 함수들이 있습니다. 이 함수들과 비교하면서 공부하시면 쉽게 이해하실 수 있습니다. 1. numpy.char.add(x1, x2) 이 함수는 기존 파이썬의 문자열끼리 더하는 + 연산과 완전히 동일한 함수입니다. 아래의 예제를 보면 쉽게 이해하실겁니다. 심지어 인수도 두 개의 문자열만을 ..

Johns Hohns
'Python' 태그의 글 목록 (2 Page)