在Python中将数组元素累积乘积中的NaN视为1

在Python中将数组元素累积乘积中的NaN视为1

要返回处理NaN视为1的给定轴上数组元素的累积乘积,请使用nancumprod()方法。当遇到NaN时,累积乘积不会改变,并且前导的NaN会被替换为1。对于全部为NaN或空的切片,将返回1。除非指定了out参数,否则该方法将返回保存结果的新数组。累积乘积的计算方式是,55*105*10*155*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.]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程