您好,欢迎来到Numpy nancumprod教程。在之前的教程中,我们了解了NumPy cumprod。在本教程中,我们将学习NumPy nancumprod()方法,并看到很多相关示例。那么让我们开始吧!
推荐阅读:NumPy cumprod – 完整指南、 NumPy nanprod – 完整指南
什么是 NumPy nancumprod?
在 Python 中,NaN表示不是数字。如果我们有一个包含一些 NaN 值的数组,并且想要找到其累积乘积,我们可以使用 nancumprod()
NumPy 中的方法。累积乘积是 给定序列的部分乘积的序列。如果 {a, b, c, d, e, f,…..} 是一个序列,则其累积乘积表示为 {a, a*b, a*b*c, a*b*c*d,… .} .
NumPy 中的方法 nancumprod()
是一个函数,返回将数组中的 NaN 值视为等于 1 计算得到的数组元素的累积乘积。它可以是展平数组的累积乘积,即数组元素沿行或沿列的数组元素的累积乘积。
我们将在本教程的后续部分中看到每个示例的示例。
NumPy nancumprod 的语法
numpy.nancumprod(a, axis = None , dtype = None , out = None ) |
范围 | 描述 | 必需/可选 |
A | 输入数组。 | 必需的 |
轴 | 计算数组累积乘积的轴。它可以是 axis=0 或 axis=1 或 axis=None ,这意味着要返回展平数组的累积乘积。 | 选修的 |
dtype(数据类型) | 要返回的数组的数据类型。 | 选修的 |
出去 | 用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和长度。 | 选修的 |
返回:
包含输出的新数组。如果 提到了out ,则返回对其的引用。
numpy.nancumprod() 方法的示例
现在让我们通过一些示例来了解如何使用此功能。
单个元素的累积乘积
import numpy as np a = 10 ans = np.nancumprod(a) print ( "a =" , a) print ( "Cumulative product =" , ans) |
输出:
a = 10 Cumulative product = [10] |
包含 NaN 的一维数组的累积乘积
import numpy as np a = [ 5 , np.nan, 10 , np.nan, np.nan, 2 ] ans = np.nancumprod(a) print ( "a =" , a) print ( "Cumulative product =" , ans) |
输出:
a = [5, nan, 10, nan, nan, 2] Cumulative product = [ 5. 5. 50. 50. 50. 100.] |
在上面的代码中,数组包含 3 个 NaN 值。
在计算乘积时,该 nancumprod()
函数将该 NaN 值视为 1,并将累积乘积计算为 5, 5*, 5*1*10, 5*1*10*1, 5*1*10*1*1, 5* 1*10*1*1*2 结果为 5、5、50、50、50、100。
包含 NaN 的二维数组的累积乘积
import numpy as np a = [[ 3 , np.nan, 6 ], [ 8 , np.nan, np.nan]] ans = np.nancumprod(a) print ( "a =" , a) print ( "Cumulative product =" , ans) |
输出:
a = [[3, nan, 6], [8, nan, nan]] Cumulative product = [ 3. 3. 18. 144. 144. 144.] |
对于二维数组,当没有提到轴时,首先将数组展平,然后将 NaN 视为 1 来计算其累积乘积。
在上面的例子中,数组首先被展平为 [3, np.nan, 6, 8, np.nan, np.nan] 即按行,然后其累积乘积计算为 [3, 3*1, 3 *1*6, 3*1*6*8, 3*1*6*8,*1, 3*1*6*8,*1*1] 得到数组 [3, 3, 18, 144 , 144, 144] 由函数返回。
沿轴的累积积将 NaN 视为 1
轴 = 0
import numpy as np a = [[ 5 , 2 , np.nan], [ 10 , np.nan, 3 ]] # cumulative product along axis=0 ans = np.nancumprod(a, axis = 0 ) print ( "a =\n" , a) print ( "Cumulative product =\n" , ans) |
输出:
a = [[5, 2, nan], [10, nan, 3]] Cumulative product = [[ 5. 2. 1.] [50. 2. 3.]] |
将 NaN 视为 1,第一行保持原样。第二行包含计算为5*10、2*1、1*3的累积乘积,即50、2和3。即,累积乘积是按列计算的并以行的形式存储。
轴 = 1
import numpy as np a = [[ 5 , 2 , np.nan], [ 10 , np.nan, 3 ]] # cumulative product along axis=1 ans = np.nancumprod(a, axis = 1 ) print ( "a =\n" , a) print ( "Cumulative product =\n" , ans) |
输出:
a = [[5, 2, nan], [10, nan, 3]] Cumulative product = [[ 5. 10. 10.] [10. 10. 30.]] |
此处,第一列保持原样,第二列包含计算为 5*2, 10*1 的累积乘积,结果为 10, 10,第三列包含累积乘积 5*2*1, 10*1* 3即10和30。即按行计算累加积,并以列的形式存储。
概括
就这样!在本教程中,我们了解了 Numpy nancumprod 方法,并使用该方法练习了不同类型的示例。