Numpy MaskedArray.cumprod()函数| Python
numpy.MaskedArray.cumprod()
返回掩码数组元素在给定轴上的累积乘积。在计算期间,掩码值在内部设置为 1。但是,它们的位置会被保存,并且结果将在相同的位置被屏蔽。
Syntax : numpy.ma.cumprod(axis=None, dtype=None, out=None)
Parameters:
axis :[ int, optional] Axis along which the cumulative product is computed. The default (None) is to compute the cumprod over the flattened array.
dtype : [dtype, optional] Type of the returned array, as well as of the accumulator in which the elements are multiplied. If dtype is not specified, it defaults to the dtype of arr, unless arr has an integer dtype with a precision less than that of the default platform integer. In that case, the default platform integer is used instead.
out : [ndarray, optional] A location into which the result is stored.
-> If provided, it must have a shape that the inputs broadcast to.
-> If not provided or None, a freshly-allocated array is returned.
Return : [cumprod_along_axis, ndarray] A new array holding the result is returned unless out is specified, in which case a reference to out is returned.
代码#1:
# Python program explaining
# numpy.MaskedArray.cumprod() method
# importing numpy as geek
# and numpy.ma module as ma
import numpy as geek
import numpy.ma as ma
# creating input array
in_arr = geek.array([[1, 2], [ 3, -1], [ 5, -3]])
print ("Input array : ", in_arr)
# Now we are creating a masked array.
# by making entry as invalid.
mask_arr = ma.masked_array(in_arr, mask =[[1, 0], [ 1, 0], [ 0, 0]])
print ("Masked array : ", mask_arr)
# applying MaskedArray.cumprod
# methods to masked array
out_arr = mask_arr.cumprod()
print ("cumulative product of masked array along default axis : ", out_arr)
Input array : [[ 1 2]
[ 3 -1]
[ 5 -3]]
Masked array : [[-- 2]
[-- -1]
[5 -3]]
cumulative sum of masked array along default axis : [-- 2 -- -2 -10 30]
代码#2:
# Python program explaining
# numpy.MaskedArray.cumprod() method
# importing numpy as geek
# and numpy.ma module as ma
import numpy as geek
import numpy.ma as ma
# creating input array
in_arr = geek.array([[1, 0, 3], [ 4, 1, 6]])
print ("Input array : ", in_arr)
# Now we are creating a masked array.
# by making one entry as invalid.
mask_arr = ma.masked_array(in_arr, mask =[[ 0, 0, 0], [ 0, 0, 1]])
print ("Masked array : ", mask_arr)
# applying MaskedArray.cumprod methods
# to masked array
out_arr1 = mask_arr.cumprod(axis = 0)
print ("cumulative product of masked array along 0 axis : ", out_arr1)
out_arr2 = mask_arr.cumprod(axis = 1)
print ("cumulative product of masked array along 1 axis : ", out_arr2)
Input array : [[1 0 3]
[4 1 6]]
Masked array : [[1 0 3]
[4 1 --]]
cumulative product of masked array along 0 axis : [[1 0 3]
[4 0 --]]
cumulative product of masked array along 1 axis : [[1 0 0]
[4 4 --]]