NaN을 1로 취급하면서 주어진 축을 따라 배열 요소의 누적 곱을 반환하려면 nancumprod() 메서드를 사용합니다. 이 메서드는 NaN을 만나더라도 누적 곱 값이 변하지 않으며, 앞쪽에 위치한 선행 NaN은 1로 대체됩니다. 또한 모든 요소가 NaN이거나 비어 있는 슬라이스에 대해서는 1을 반환합니다. 결과를 담은 새로운 배열이 반환되며, 단 out 매개변수가 지정된 경우에는 해당 배열에 결과가 저장되어 반환됩니다.
누적 곱은 5, 5*10, 5*10*15, 5*10*15*20처럼 순서대로 값을 곱해 나가는 방식으로 계산됩니다. 첫 번째 매개변수는 입력 배열입니다. 두 번째 매개변수는 누적 곱이 계산되는 축(Axis)으로, 기본 설정에서는 입력 배열이 평탄화(flatten)되어 처리됩니다. 세 번째 매개변수는 반환되는 배열의 데이터 타입(dtype)이자, 요소가 곱해지는 누산기(accumulator)의 타입입니다. dtype을 지정하지 않으면 입력 배열 a의 dtype이 기본값으로 사용되며, 다만 a가 기본 플랫폼 정수보다 낮은 정밀도의 정수 dtype을 가질 경우에는 기본 플랫폼 정수가 대신 사용됩니다.
네 번째 매개변수는 결과를 저장할 대체 출력 배열입니다. 이 배열은 예상되는 출력과 동일한 형태(shape)와 버퍼 길이를 가져야 하며, 필요한 경우 결과 값의 타입은 자동으로 캐스팅됩니다.
단계
먼저 필요한 라이브러리를 임포트합니다 −
import numpy as np
array() 메서드를 사용해 NumPy 배열을 생성합니다. int 타입 요소와 nan을 함께 포함시켰습니다 −
arr = np.array([[5, 10, 15], [20, np.nan, 30]])
배열을 화면에 출력합니다 −
print("Our Array...\n",arr)배열의 차원을 확인합니다 −
print("\nDimensions of our Array...\n",arr.ndim)배열 객체의 데이터 타입을 확인합니다 −
print("\nDatatype of our Array object...\n",arr.dtype)NaN을 1로 취급하면서 주어진 축을 따라 배열 요소의 누적 곱을 반환하려면 nancumprod() 메서드를 사용합니다 −
print("\nCumulative Product of array elements...\n",np.nancumprod(arr, axis = 1))예제
import numpy as np
# array() 메서드를 사용하여 NumPy 배열 생성
# int 타입 요소와 nan을 함께 포함시켰습니다
arr = np.array([[5, 10, 15], [20, np.nan, 30]])
# 배열 출력
print("Our Array...\n",arr)
# 차원 확인
print("\nDimensions of our Array...\n",arr.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",arr.dtype)
# NaN을 1로 취급하며 축 1(axis=1)을 따라 배열 요소의 누적 곱을 반환합니다
# NaN을 만나도 누적 곱은 변하지 않으며, 선행하는 NaN은 1로 대체됩니다
print("\nCumulative Product of array elements...\n",np.nancumprod(arr, axis = 1))출력 결과
Our Array... [[ 5. 10. 15.] [20. nan 30.]] Dimensions of our Array... 2 Datatype of our Array object... float64 Cumulative Product of array elements... [[ 5. 50. 750.] [ 20. 20. 600.]]