반응형

Python/Numpy 42

[Numpy] np.sum() 사용법, axis와 keepdims 의미

파이썬 넘파이 합계 함수 np.sum() 사용 방법 정리 안녕하세요. 이번 글에서는 넘파이 라이브러리에서 전체 합계 혹은 축 합계를 구할 수 있는 np.sum 함수의 사용법을 주요 인자인 axis와 keepdims 인자를 중심으로 설명해보는 시간을 가져보도록 하겠습니다. np.sum() 함수 기본 사용법 기본 사용법은 array 내 전체 값들의 합을 구하는 방법으로, 파이썬 내장 함수인 sum과 동일한 기능을 수행하게 됩니다. np.sum(array) 혹은 array.sum() 두 가지 형태로 전체 합계를 구할 수 있습니다. 이번 글에서는 아래의 간단한 2차원 배열에서 합계를 구한 예시를 살펴보도록 하겠습니다. import numpy as np a = np.array([[1, 0, 3], [2, 5, 4..

Python/Numpy 2022.02.02

[Numpy] 파이썬 SVD 차원 축소 예제 : np.linalg.svd() 또는 LA.svd()

파이썬 넘파이 특이값 분해(SVD) 차원 축소 : LA.svd() 이번 글에서는 파이썬 넘파이에서 특이값 분해(SVD)를 이용하여 \(U, \Sigma, V\)의 3가지 행렬로 분리된 결과를 가져와보고, 이를 이용하여 차원 축소를 진행하는 예시까지 간단하게 살펴보도록 하겠습니다. 우선, 오늘 예제에서 사용할 간단한 2 * 3 행렬을 선언해 보겠습니다. import numpy as np A = np.array([[-1, 1, 0], [0, -1, 1]]) 파이썬 full SVD vs truncated SVD 예제 오늘 설명할 파이썬의 np.linalg.svd (혹은 import numpy.linalg as LA 선언 시 LA.svd) 함수는 full SVD와 truncated SVD의 두 가지 형태를 모두..

Python/Numpy 2022.01.20

[Numpy] 행렬곱 함수 np.matmul 사용법, np.dot과의 차이

파이썬 넘파이 np.matmul vs np.dot 비교 이번 글에서는 np.dot 함수와의 차이 비교를 기준으로 np.matmul 함수의 사용 방법을 살펴보도록 하겠습니다. 참고로, 지난 번에 행렬곱 함수 중 하나인 np.dot 함수의 사용법에 대한 포스팅을 다룬 적이 있습니다. 해당 글의 링크는 아래에 첨부해두었습니다. [Numpy] 파이썬 내적, 행렬곱 함수 np.dot() 사용법 총정리 파이썬 넘파이 내적 함수 : np.dot() 안녕하세요. 이번 시간에는 파이썬 넘파이 라이브러리에서 제공하는 벡터 내적, 행렬곱 함수인 np.dot 함수의 사용법을 array의 차원에 따라서 총정리해보는 시간 jimmy-ai.tistory.com np.matmul 함수의 기본적인 사용법은 np.matmul(a, b)..

Python/Numpy 2022.01.19

[Numpy] np.squeeze 함수 사용법과 의미

파이썬 넘파이 np.squeeze() 함수 : 크기가 1인 axis 제거 이번 시간에는 파이썬 넘파이 배열에서 크기가 1인 추가 axis를 제거하는 np.squeeze 함수의 사용법과 의미에 대해서 간단히 살펴보도록 하겠습니다. 먼저, 다음과 같은 2차원 배열처럼 보이는 3차원 배열이 있다고 가정해보겠습니다. import numpy as np a = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) a.shape # (1, 3, 3) 겉으로 보기에는 3 * 3 크기의 2차원 배열처럼 생겼으나, 괄호가 가장 바깥쪽에 1개가 추가로 있어 실제 shape은 (3, 3)이 아닌 (1, 3, 3)입니다. [1, 2, 3, 4]와 [[1, 2, 3, 4]]의 관계로 생각하시면 이해가..

Python/Numpy 2022.01.14

[Numpy] 배열 shape 변경 : np.reshape 함수 사용법, -1 의미

파이썬 넘파이 배열 차원 변경 함수 : np.reshape reshape 함수를 통하여 넘파이 배열의 차원을 변환하는 방법에 대해서 살펴보고, 함수 내 input으로 -1을 포함한 경우의 의미도 살펴보도록 하겠습니다. np.reshape 함수 기본 사용법 기본적인 사용 방법은 배열 a에 대하여 a.reshape(변환 shape) 혹은 np.reshape(a, 변환 shape) 형태로 사용해주시면 됩니다. axis 순서대로(가로 -> 세로 축 방향) 값들을 변환되는 shape으로 재배정하는 원리이며, 재배정이 불가능한 shape인 경우 ValueError가 발생합니다. 1차원 배열에 대한 실행 예제입니다. import numpy as np a = np.arange(9) # array([0, 1, 2, 3,..

Python/Numpy 2022.01.13

[Numpy] 배열을 반복하여 쌓는 함수 np.tile 사용법(그림으로 정리)

파이썬 넘파이 배열 쌓기 함수 : np.tile 이번 글에서는 넘파이 라이브러리에서 배열을 원하는 모양으로 쌓아 올릴 수 있는 함수인 np.tile 함수의 사용법에 대해서 알아보는 시간을 가져보겠습니다. 이 글은 np.tile 함수의 넘파이 공식 document의 내용을 기반으로 작성되었습니다. np.tile 함수의 사용법은 매우 간단합니다. np.tile(A, repeat_shape) 형태이며, A 배열이 repeat_shape 형태로 반복되어 쌓인 형태가 반환됩니다. 1차원과 2차원 배열을 np.tile 함수를 이용하여 반복 쌓기한 형태를 보며, 함수의 사용법을 이해해보도록 하겠습니다. np.tile 1차원 배열 쌓기 예제 [5, 6] 형태의 2개의 원소를 가진 배열을 선언하고, 가로로만 3차원, 그..

Python/Numpy 2022.01.13

[Numpy] 넘파이 어레이(배열) 인덱싱, 슬라이싱 총정리

파이썬 numpy array 인덱싱과 슬라이싱 파이썬 넘파이 어레이(배열)의 인덱싱, 슬라이싱 과정에 대해서 살펴보고, 몇 가지 중요한 특징과 예제를 정리해보는 시간을 가져보겠습니다. 아래의 간단한 2차원 array를 대상으로 예제를 설명하겠습니다. import numpy as np a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) 넘파이 어레이 인덱싱 인덱싱은 원소 1개만을 골라 추출하는 과정을 일컫습니다. 0번부터 인덱스가 시작함에 주의하며, axis마다 원하는 원소의 좌표를 순서대로 지정해주시면 됩니다. 뒤 쪽부터 인덱스를 가져오는 -1, -2, ...의 인덱싱도 리스트처럼 지원합니다. 예를 들어, 두 번째 행..

Python/Numpy 2022.01.10

[Numpy] 파이썬 리스트를 어레이로, 어레이를 리스트로 변환(tolist 함수)

파이썬 list to array와 numpy array to list 방법 파이썬의 리스트 자료형을 넘파이 배열로 바꾸거나 numpy array에서 list 자료형으로 바꾸는 방법에 대해서 간단히 정리해보도록 하겠습니다. 파이썬 list를 numpy array로 바꾸기 : np.array 함수 리스트를 넘파이 어레이로 만드는 방법은 np.array 함수를 이용하면 됩니다. 단, 다차원 array에서는 내부 배열 간 원소 개수가 같아야 하기에, 해당 조건이 위배되는 경우에는 내부 원소는 list 형태로 잔류하게 됩니다. import numpy as np a = [1.5, 3.7, 4.4, 9.2] b = [[1, 3, 5], [2, 4, 6]] c = [[1], [2, 3], [4, 5, 6]] np.ar..

Python/Numpy 2022.01.09

[Numpy] 파이썬 리스트 vs 넘파이 어레이(배열) 차이

파이썬 list와 numpy array 차이 비교 이번 시간에는 얼핏 비슷해 보이지만 완전히 기능이 다른 파이썬의 리스트와 넘파이 어레이의 차이를 간단히 비교해보도록 하겠습니다. 파이썬 리스트 vs 어레이 차이 1 : 선언 조건 리스트는 숫자형, 문자열 등 모든 자료를 타입을 보존하여 가질 수 있습니다. (여러 가지 자료형 허용) 반면, 넘파이 어레이는 숫자형과 문자열이 섞이면 모두 문자열로 전환됩니다. (한 가지 자료형만 허용) import numpy as np a = [1, 3, 5, 'a', 'b'] # 1, 3, 5는 숫자형, 'a', 'b'는 문자열 b = np.array([1, 3, 5, 'a', 'b']) # '1', '3', '5', 'a', 'b'의 문자열로 전환 2차원 이상의 배열 구조..

Python/Numpy 2022.01.09

[Numpy] 파이썬 대각 행렬, 대각 성분 추출 함수 np.diag 사용법

파이썬 넘파이 대각 원소 추출, 대각 행렬 함수 : np.diag 안녕하세요. 파이썬의 넘파이 라이브러리에서 대각 원소를 추출하고 대각 행렬을 만들어낼 수 있는 함수인 np.diag의 사용법에 대해서 간단히 다루어보도록 하겠습니다. 참고로, 이 포스팅은 numpy 공식 document에서 제공하는 np.diag 함수에 대한 글을 바탕으로 작성되었습니다. np.diag 2차원 행렬 input : 대각 성분 추출 참고로, np.diag 함수는 1차원과 2차원 array만을 input으로 받을 수 있습니다. 만일 3차원 이상의 array를 넣으려 시도한다면 오류가 발생합니다. 2차원 array와 1차원 array를 input으로 넣었을 때 기능이 다른데요. 2차원 행렬을 input으로 넣으면 대각 원소만을 추..

Python/Numpy 2022.01.06
반응형