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

numpyserver side programmingprogramming更新于 2025/9/1 11:37:17

要返回数组元素在给定轴上将 NaN 视为 1 的累积乘积,请使用 nancumprod() 方法。当遇到 NaN 时,累积乘积不会改变,前导 NaN 会被替换为 1。对于全为 NaN 或为空的切片,将返回 1。该方法返回一个保存结果的新数组,除非指定了 out,否则将返回结果。累积乘积的运算方式如下:5、5*10、5*10*15、5*10*15*20

第一个参数是输入数组。第二个参数是计算累积乘积的轴。默认情况下,输入是扁平化的。第三个参数是返回数组的类型,以及元素相乘的累加器的类型。如果未指定 dtype,则默认为 a 的 dtype,除非 a 的整型 dtype 精度低于平台默认整型。在这种情况下,将使用平台默认整型。第 4 个参数是用于存放结果的备用输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但结果值的类型将根据需要进行强制转换。

步骤

首先,导入所需的库 −

import numpy as np

使用 array() 方法创建一个 numpy 数组。我们用 nan 添加了 int 类型的元素 −

arr = np.array([5, 10, 15, np.nan])

显示数组 −

print("我们的数组...
",arr)

检查维度 −

print("
数组的维度...
",arr.ndim)

获取数据类型 −

print("
数组对象的数据类型...
",arr.dtype)

要返回数组元素在给定轴上的累积乘积,并将 NaN 视为 1,请使用 nancumprod() 方法。遇到 NaN 时,累积乘积不会改变,并且前导 NaN 会被 1 替换 −

print("
数组元素的累积乘积...
",np.nancumprod(arr))

示例

import numpy as np

# 使用 array() 方法创建 numpy 数组
# 我们用 nan 添加了 int 类型的元素
arr = np.array([5, 10, 15, np.nan])

# 显示数组
print("我们的数组...
",arr) # 检查维度 print("
我们的数组的维度...
",arr.ndim) # 获取数据类型 print("
我们的数组对象的数据类型...
",arr.dtype) # 要返回数组元素在给定轴上的累积乘积,将 NaN 视为 1,请使用 nancumprod() 方法 print("
数组元素的累积乘积...
",np.nancumprod(arr))

输出

我们的数组...
[ 5. 10. 15. nan]

数组的维度...
1

数组对象的数据类型...
float64

数组元素的累积乘积...
[ 5. 50. 750. 750.]

相关文章