NumPy의 np.gradient() 함수는 N차원 배열의 기울기(gradient)를 계산하여 반환합니다. 내부 지점에서는 2차 정확도의 중앙 차분(central differences)을 사용하고, 경계 지점에서는 1차 또는 2차 정확도의 편차분(forward 또는 backward 차분)을 사용해 계산됩니다. 따라서 반환되는 기울기는 입력 배열과 동일한 형태(shape)를 가집니다.
주요 매개변수
첫 번째 매개변수 f는 스칼라 함수의 샘플 값을 담고 있는 N차원 배열입니다.
두 번째 매개변수(varargs)는 f 값들 사이의 간격(spacing)을 의미하며, 기본값은 모든 차원에 대해 단위 간격(1)입니다.
세 번째 매개변수 edge_order {1, 2}는 경계에서 N차 정확도의 차분으로 기울기를 계산하도록 지정합니다. 기본값은 1입니다.
네 번째 매개변수 axis는 지정된 축(또는 축들)에 대해서만 기울기를 계산합니다. 기본값(axis = None)은 입력 배열의 모든 축에 대해 기울기를 계산하는 것입니다. axis는 음수가 될 수 있으며, 이 경우 마지막 축부터 첫 번째 축까지 역순으로 계산됩니다.
이 메서드는 각 차원에 대한 f의 도함수에 해당하는 ndarray 리스트를 반환하며, 각 도함수는 f와 동일한 형태를 가집니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
array() 메서드를 사용해 NumPy 배열을 생성합니다. 여기에는 float 타입의 요소를 추가했습니다.
arr = np.array([[20, 35, 57], [70, 85, 120]], dtype = float)
배열을 출력합니다.
print("Our Array...\n",arr)배열의 차원을 확인합니다.
print("\nDimensions of our Array...\n",arr.ndim)배열의 데이터 타입을 확인합니다.
print("\nDatatype of our Array object...\n",arr.dtype)내부 지점에서는 2차 정확도의 중앙 차분을, 경계에서는 1차 또는 2차 정확도의 편차분을 사용하여 기울기를 계산합니다. 반환되는 결과는 입력 배열과 동일한 형태를 가집니다.
print("\nResult (gradient)...\n",np.gradient(arr, axis = 0))전체 예제 코드
import numpy as np
# array() 메서드를 사용해 NumPy 배열 생성
# float 타입의 요소 추가
arr = np.array([[20, 35, 57], [70, 85, 120]], dtype = float)
# 배열 출력
print("Our Array...\n",arr)
# 차원 확인
print("\nDimensions of our Array...\n",arr.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",arr.dtype)
# 내부 지점은 중앙 차분, 경계는 편차분으로 기울기 계산
# 반환되는 결과는 입력 배열과 동일한 형태를 가짐
print("\nResult (gradient)...\n",np.gradient(arr, axis = 0))실행 결과
Our Array... [[ 20. 35. 57.] [ 70. 85. 120.]] Dimensions of our Array... 2 Datatype of our Array object... float64 Result (gradient)... [[50. 50. 63.] [50. 50. 63.]]