n번째 이산 차이(discrete difference)를 계산하려면 numpy.diff() 메서드를 사용합니다. 첫 번째 차이는 지정된 축을 따라 out[i] = a[i+1] - a[i]로 정의되며, 그보다 높은 차수의 차이는 diff를 재귀적으로 적용하여 계산됩니다. diff() 메서드는 n번째 차이를 반환하며, 출력 배열의 형태는 axis 방향으로만 크기가 n만큼 작아지고 나머지 축에서는 입력 배열과 동일합니다.
출력의 데이터 타입은 대부분의 경우 입력 배열 a의 타입과 같습니다. 다만 주목할 만한 예외로, datetime64 타입의 경우 timedelta64 타입의 출력 배열이 생성됩니다.
주요 매개변수
- 첫 번째 매개변수: 입력 배열입니다.
- 두 번째 매개변수(n): 값들이 차분되는 횟수입니다. 0이면 입력이 그대로 반환됩니다.
- 세 번째 매개변수(axis): 차이를 계산할 축으로, 기본값은 마지막 축입니다.
- 네 번째 매개변수(prepend/append): 차분 연산 수행 전에 해당 축을 따라 입력 배열 앞이나 뒤에 추가할 값들입니다. 스칼라 값은 axis 방향으로 길이 1인 배열로 확장되며, 다른 모든 축에서는 입력 배열의 형태를 따릅니다.
단계별 진행
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
array() 메서드를 사용하여 numpy 배열을 생성합니다. int 타입 요소에 nan을 함께 포함시켰습니다.
arr = np.array([[10, 15, 30, 65], [80, 87, 100, np.nan]])
생성한 배열을 화면에 출력합니다.
print("Our Array...\n",arr)배열의 차원을 확인합니다.
print("\nDimensions of our Array...\n",arr.ndim)배열 객체의 데이터 타입을 확인합니다.
print("\nDatatype of our Array object...\n",arr.dtype)numpy.diff() 메서드를 사용하여 n번째 이산 차이를 계산합니다. 첫 번째 차이는 지정된 축을 따라 out[i] = a[i+1] - a[i]로 정의되며, 더 높은 차수의 차이는 diff를 재귀적으로 적용하여 구합니다.
print("\nDiscrete difference..\n",np.diff(arr, axis = 1))전체 예제 코드
import numpy as np
# array() 메서드를 사용하여 numpy 배열 생성
# int 타입 요소에 nan 추가
arr = np.array([[10, 15, 30, 65], [80, 87, 100, np.nan]])
# 배열 출력
print("Our Array...\n",arr)
# 차원 확인
print("\nDimensions of our Array...\n",arr.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",arr.dtype)
# numpy.diff() 메서드로 n번째 이산 차이 계산
# 첫 번째 차이는 out[i] = a[i+1] - a[i]로 정의되며,
# 더 높은 차수의 차이는 diff를 재귀적으로 적용하여 계산됨
print("\nDiscrete difference..\n",np.diff(arr, axis = 1))실행 결과
Our Array... [[ 10. 15. 30. 65.] [ 80. 87. 100. nan]] Dimensions of our Array... 2 Datatype of our Array object... float64 Discrete difference.. [[ 5. 15. 35.] [ 7. 13. nan]]