NumPy의 np.gradient() 함수는 내부(interior) 지점에서는 2차 정확도의 중앙 차분(central difference)을 사용하고, 경계(boundary)에서는 1차 또는 2차 정확도의 한쪽 차분(forward 또는 backward difference)을 사용하여 기울기를 계산합니다. 따라서 반환되는 기울기는 입력 배열과 동일한 형태(shape)를 가집니다.
첫 번째 매개변수 f는 스칼라 함수의 샘플 값을 담고 있는 N차원 배열입니다. 두 번째 매개변수는 varargs로, f 값들 사이의 간격(spacing)을 의미하며, 기본값은 모든 차원에 대해 단위 간격(unitary spacing)입니다.
세 번째 매개변수 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차 정확도의 한쪽 차분(forward 또는 backward)을 사용하여 기울기를 계산합니다. 따라서 반환되는 기울기는 입력 배열과 동일한 형태를 가집니다 −
print("\nResult (gradient)...\n",np.gradient(arr, edge_order=2))전체 예제 코드
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차 정확도의
# 한쪽 차분(forward 또는 backward)을 사용하여 기울기를 계산합니다.
# 반환되는 기울기는 입력 배열과 동일한 형태를 가집니다.
print("\nResult (gradient)...\n",np.gradient(arr, edge_order=2))실행 결과
Our Array... [ 20. 35. 57. 70. 85. 120.] Dimensions of our Array... 1 Datatype of our Array object... float64 Result (gradient)... [11.5 18.5 17.5 14. 25. 45. ]