배열 요소의 누적 합계를 계산할 때 NaN(Not a Number) 값을 0으로 취급하고 싶다면 numpy.nancumsum() 메서드를 사용하면 됩니다. 이 메서드는 NaN을 만나도 누적 합계가 변하지 않으며, 배열 앞부분에 있는 선행 NaN은 0으로 대체됩니다. 또한 모든 요소가 NaN이거나 비어 있는 슬라이스에 대해서는 0을 반환합니다.결과는 별도의 새로운 배열로 반환되지만, out 매개변수를 지정하면 해당 배열에 결과가 저장되어 반환됩니다. 결과 배열의 크기는 입력 배열 a와 동일하며, axis가 None이 아니거나 a가 1
주어진 객체가 스칼라(scalar) 데이터 타입을 나타내는지 확인하려면 numpy.issctype() 메서드를 사용하면 됩니다. 이 메서드는 전달된 객체(rep)가 스칼라 dtype인지 여부를 불리언(Boolean) 값으로 반환합니다.첫 번째 매개변수는 확인 대상인 rep입니다. rep가 스칼라 dtype의 인스턴스라면 True를 반환하고, 그렇지 않다면 False를 반환합니다.진행 단계먼저 필요한 라이브러리를 임포트합니다.import numpy as npNumPy에서 issctype() 메서드를 사용해 봅니다.print("
NumPy 그라디언트 개요NumPy의 np.gradient() 함수는 배열에 저장된 스칼라 함수의 샘플 값을 바탕으로 수치 그라디언트(미분값)를 계산합니다. 내부 지점에서는 2차 정확도의 중앙 차분(central difference) 방식을 사용하고, 경계 지점에서는 1차 또는 2차 정확도의 한쪽 차분(전진 또는 후진 차분)을 적용합니다. 따라서 반환되는 그라디언트는 입력 배열과 동일한 형태(shape)를 가집니다.주요 매개변수f : 스칼라 함수의 샘플 값을 담고 있는 N차원 배열입니다.varargs : f 값 사이의 간격(spac
크기가 다른 유사한 데이터 타입들이 서로의 하위 타입(subtype)이 아닌지 확인하려면 Python NumPy의 numpy.issubdtype() 메서드를 사용하면 됩니다. 이 메서드는 dtype 또는 dtype으로 변환 가능한 객체를 인자로 받습니다.진행 단계먼저 필요한 라이브러리를 임포트합니다.import numpy as npNumPy의 issubdtype() 메서드를 사용하여 크기가 다른 유사한 데이터 타입들을 확인합니다.먼저 서로 다른 크기의 float 데이터 타입을 확인해 보겠습니다.print("Result...
Python NumPy에서 numpy.issubdtype() 메서드를 사용하면 두 데이터 타입(dtype) 사이의 하위 타입(subtype) 관계를 간단하게 확인할 수 있습니다. 이 메서드는 첫 번째 인자가 두 번째 인자의 하위 타입인지 여부를 True 또는 False로 반환하며, 매개변수로는 dtype 또는 dtype으로 변환 가능한 객체를 전달합니다.핵심 개념NumPy에서 int16, int32, int64처럼 크기가 다른 정수 데이터 타입은 저장 용량만 다를 뿐, 서로 간에 상속(하위 타입) 관계가 성립하지 않습니다. 따라서
Python NumPy에서 numpy.issubdtype() 메서드를 사용하면 크기가 다른 float 데이터 타입들이 서로의 하위 타입(subtype)이 아닌지 손쉽게 확인할 수 있습니다. 이 메서드는 첫 번째 인자가 두 번째 인자의 하위 타입인지 여부를 불리언(True/False) 값으로 반환하며, 인자로는 dtype 또는 dtype으로 변환 가능한 객체를 전달합니다.핵심 개념NumPy는 float16(반정밀도), float32(단정밀도), float64(배정밀도)처럼 크기와 정밀도가 서로 다른 여러 부동소수점 타입을 제공합니다.
첫 번째 인수의 데이터 타입이 두 번째 인수의 하위 클래스(subclass)인지 확인하려면 Python NumPy의 numpy.issubsctype() 메서드를 사용하면 됩니다. 이때 첫 번째 인수와 두 번째 인수는 모두 데이터 타입(dtype)입니다.사용 단계먼저 필요한 라이브러리를 임포트합니다.import numpy as npNumPy의 issubsctype() 메서드를 호출하여 첫 번째 인수가 두 번째 인수의 하위 클래스인지 확인합니다.print(Result...,np.issubsctype(np.float16, np.float
Python에서 4차원(4D) 배열과 3차원(3D) 배열의 크로네커 곱(Kronecker product)을 계산하려면 numpy.kron() 메서드를 사용하면 됩니다. 크로네커 곱은 첫 번째 배열의 각 요소로 두 번째 배열을 스케일링한 블록들로 구성된 복합 배열입니다.크로네커 곱의 동작 원리numpy.kron() 함수는 두 배열 a와 b의 차원 수가 같다고 가정하며, 차원 수가 다를 경우에는 더 작은 쪽 앞에 길이가 1인 축을 추가해 맞춥니다.만약 a.shape = (r0, r1, ..., rN)이고 b.shape = (s0, s1
정방 행렬의 촐레스키 분해(Cholesky Decomposition)를 계산하려면 NumPy의 numpy.linalg.cholesky() 메서드를 사용합니다. 이 메서드는 정방 행렬 a에 대해 L * L.H 형태의 촐레스키 분해를 반환합니다. 여기서 L은 하삼각 행렬(lower-triangular)이며, .H는 켤레 전치(conjugate transpose) 연산자를 의미합니다.입력 행렬 a는 반드시 에르미트(Hermitian) 행렬이면서 양의 정부호(positive-definite)여야 합니다. 다만 이 메서드는 a가 실제로 에르
복소 에르미트(complex Hermitian) 행렬이나 실수 대칭(real symmetric) 행렬의 고유값(eigenvalue)을 계산하려면 numpy.eigvalsh() 메서드를 사용합니다. 이 메서드는 고유값을 오름차순으로 정렬하여 반환하며, 중복된 고유값은 그 중복도(multiplicity)에 따라 반복해서 나타냅니다.첫 번째 매개변수 a는 고유값을 계산할 복소수 또는 실수 값의 행렬입니다. 두 번째 매개변수 UPLO는 행렬 a의 하삼각 부분(L, 기본값)을 사용할지 상삼각 부분(U)을 사용할지 지정합니다. 이 값과 무관하
선형 대수학에서 행렬이나 벡터의 노름(Norm)을 구하려면 Python NumPy의 LA.norm() 메서드를 사용하면 됩니다. 노름은 벡터의 길이 또는 행렬의 크기를 나타내는 지표로, 머신러닝과 수치 해석에서 널리 활용됩니다.LA.norm() 메서드의 주요 매개변수첫 번째 매개변수 x는 입력 배열입니다. axis가 None이면 x는 1차원 또는 2차원이어야 합니다(ord가 None인 경우는 제외). 만약 axis와 ord가 모두 None이라면 x.ravel()의 2-노름(2-norm), 즉 플로베니우스 노름(Frobenius no
선형 대수에서 행렬의 조건수(condition number)를 계산하려면 Python의 numpy.linalg.cond() 메서드를 사용하면 됩니다. 이 메서드는 두 번째 매개변수 p의 값에 따라 7가지 서로 다른 노름 중 하나를 선택해 조건수를 반환할 수 있으며, 행렬이 특이행렬(singular matrix)에 가까운 경우 결과가 무한대(inf)가 될 수도 있습니다.행렬 x의 조건수는 “x의 노름 × x의 역행렬의 노름”으로 정의됩니다. 여기서 노름은 일반적인 L2 노름일 수도 있고, 그 외 다양한 행렬 노름 중 하나일 수도 있습
복소수(complex number) 배열에서 실수 부분을 추출하려면 numpy.real() 메서드를 사용하면 됩니다. 이 메서드는 복소수 인자의 실수 성분을 반환하며, 입력값이 실수인 경우에는 해당 값의 자료형이 그대로 출력에 사용됩니다. 반면 복소수 원소를 포함하는 경우 반환되는 자료형은 float입니다.첫 번째 매개변수인 val은 입력 배열을 의미합니다. 이 글에서는 numpy.real() 메서드로 실수 부분을 확인한 뒤, arr.real 속성을 사용해 실수 부분을 직접 변경하는 방법까지 함께 알아보겠습니다.단계별 진행 방법1단
NumPy의 numpy.diff() 메서드를 사용하면 배열의 n번째 이산 차이(n-th discrete difference)를 손쉽게 계산할 수 있습니다. 첫 번째 차이는 지정된 축을 따라 out[i] = a[i+1] - a[i] 공식으로 구해지며, 더 높은 차수의 차이는 diff 함수를 재귀적으로 호출하여 계산됩니다. numpy.diff()의 주요 매개변수 첫 번째 매개변수(a): 차분을 수행할 입력 배열입니다. 두 번째 매개변수(n): 차분을 반복하는 횟수입니다. 0을 지정하면 입력 배열이 그대로 반환됩니다. 세 번째 매개변수
NumPy의 np.gradient() 함수는 내부 지점에서는 2차 정확도의 중앙 차분(central difference)을 사용하고, 경계 지점에서는 1차 또는 2차 정확도의 한쪽 방향 차분(forward 또는 backward difference)을 사용하여 기울기를 계산합니다. 따라서 반환되는 그래디언트는 입력 배열과 동일한 형태(shape)를 가집니다.np.gradient()의 주요 매개변수첫 번째 매개변수 f: 스칼라 함수의 샘플 값을 담고 있는 N차원 배열입니다.두 번째 매개변수 varargs: f 값들 사이의 간격(spac
Hermite 다항식의 의사 Vandermonde 행렬이란? Python NumPy에서 제공하는 hermite.hermvander3d() 함수를 사용하면 Hermite 다항식에 대한 x, y, z 샘플 좌표의 의사 Vandermonde(반데르몽드) 행렬을 손쉽게 생성할 수 있습니다. 이 함수는 계산된 의사 Vandermonde 행렬을 반환합니다. 매개변수 x, y, z는 각각 점 좌표를 담은 배열로, 세 배열은 반드시 동일한 형태(shape)를 가져야 합니다. 배열 요소 중 하나라도 복소수가 포함되어 있으면 데이터 타입은 자동으로
다항식 계수로 이루어진 1차원 배열의 스케일 조정된 컴패니언 행렬(scaled companion matrix)을 반환하려면 Python NumPy의 hermite.hermcompanion() 메서드를 사용합니다.이 메서드는 기저 다항식(basis polynomial)을 스케일링하여, 계수 c가 에르미트 기저 다항식일 때 컴패니언 행렬이 대칭 행렬이 되도록 만듭니다. 덕분에 스케일링하지 않은 경우보다 더 정확한 고유값 추정치를 얻을 수 있으며, 특히 numpy.linalg.eigvalsh를 사용해 고유값을 계산하면 고유값이 실수임이
Python Numpy에서 두 벡터의 외적(cross product)을 계산하려면 numpy.cross() 메서드를 사용합니다. 이 메서드는 벡터 외적인 c를 반환하며, 다양한 매개변수를 통해 입력 벡터와 출력 결과의 축을 유연하게 지정할 수 있습니다.numpy.cross() 주요 매개변수a: 첫 번째 벡터의 성분b: 두 번째 벡터의 성분axisa: 벡터 a를 정의하는 축 (기본값: 마지막 축)axisb: 벡터 b를 정의하는 축 (기본값: 마지막 축)axisc: 외적 벡터가 저장될 c의 축. 입력 벡터의 차원이 모두 2인 경우 스칼
개요주어진 축을 따라 복합 사다리꼴 규칙(composite trapezoidal rule)으로 수치 적분을 수행하려면 numpy.trapz() 메서드를 사용합니다. x 값이 제공되면 배열 요소 순서대로 적분이 진행되며, 요소들이 정렬되지 않은 상태라도 그대로 사용됩니다.이 메서드는 사다리꼴 규칙으로 단일 축을 따라 근사한 n차원 배열 y의 정적분(definite integral) 값을 반환합니다. y가 1차원 배열이면 결과는 float 형태의 스칼라가 되고, 차원이 n(n > 1)이라면 결과는 n-1차원 배열이 됩니다.참고로
복합 사다리꼴 규칙(Composite Trapezoidal Rule)을 사용하여 지정한 축을 따라 수치 적분을 수행하려면 numpy.trapz() 메서드를 사용합니다. x가 제공되면 해당 요소들의 순서대로 적분이 진행되며, 요소들은 별도로 정렬되지 않습니다. 이 메서드는 사다리꼴 규칙에 따라 단일 축 방향으로 근사한 n차원 배열 y의 정적분 값을 반환합니다. y가 1차원 배열이면 결과는 float 형태이고, 차원이 1보다 크면 결과는 n-1차원 배열이 됩니다. 첫 번째 매개변수 y는 적분할 입력 배열입니다. 두 번째 매개변수 x