在Python中将数组元素累积乘积中的NaN视为1
要返回处理NaN视为1的给定轴上数组元素的累积乘积,请使用nancumprod()方法。当遇到NaN时,累积乘积不会改变,并且前导的NaN会被替换为1。对于全部为NaN或空的切片,将返回1。除非指定了out参数,否则该方法将返回保存结果的新数组。累积乘积的计算方式是,5
,5*10
,5*10*15
,5*10*15*20
。
第一个参数是输入数组。第二个参数是计算累积乘积的轴。默认情况下,输入将被展平。第三个参数是返回数组的类型,以及元素相乘的累加器的类型。如果未指定dtype,则默认为a的dtype,除非a具有精度小于默认平台整数的整数dtype。在这种情况下,将使用默认平台整数代替。第四个参数是替代输出数组,其中包含结果。它必须具有相同的形状和缓冲区长度,但结果值的类型将根据需要进行强制转换。
步骤
首先,导入所需的库 –
import numpy as np
使用array()方法创建一个numpy数组。我们添加了int类型的元素,其中带有nan –
arr = np.array([5, 10, 15, np.nan])
显示数组 –
print("Our Array...
",arr)
检查尺寸 –
print("
Dimensions of our Array...
",arr.ndim)
获取数据类型 –
print("
Datatype of our Array object...
",arr.dtype)
使用nancumprod()方法,在给定的轴上将数组元素的累积乘积作为一个处理NaNs的都看作为1的值返回。当遇到NaNs时,累积乘积不会改变,并且前导NaNs会被替换为1。
print("
Cumulative Product of array elements...
",np.nancumprod(arr))
示例
import numpy as np
# Creating a numpy array using the array() method
# We have added elements of int type with nan
arr = np.array([5, 10, 15, np.nan])
# Display the array
print("Our Array...
",arr)
# Check the Dimensions
print("
Dimensions of our Array...
",arr.ndim)
# Get the Datatype
print("
Datatype of our Array object...
",arr.dtype)
# To return the cumulative product of array elements over a given axis treating NaNs as one, use the nancumprod() method
print("
Cumulative Product of array elements...
",np.nancumprod(arr))
输出
Our Array...
[ 5. 10. 15. nan]
Dimensions of our Array...
1
Datatype of our Array object...
float64
Cumulative Product of array elements...
[ 5. 50. 750. 750.]