在Python中,将数组元素沿着轴0进行累积乘积,将NaN视为1
要返回将NaN视为1时,沿着给定轴进行累积乘积的数组元素,请使用nancumprod()方法。当遇到NaN时,累积乘积不会改变,首个NaN将被替换为1。对于全部为NaN或为空的切片,返回1。
该方法返回一个新数组来保存结果,除非指定了out参数,否则会返回它。累积乘积的计算方式为,5, 5*10, 5*10*15, 5*10*15*20
。第一个参数是输入数组,第二个参数是沿着哪个轴计算累积乘积。默认情况下,输入数组会被展平。
第三个参数是返回数组的数据类型,以及乘积运算中元素相乘的累加器的数据类型。如果未指定dtype,则默认为输入数组的dtype,除非输入数组的dtype是小于默认平台整数的整数dtype。在这种情况下,将使用默认平台整数。第四个参数是替代输出数组,用于存放结果。它必须具有相同的形状和缓冲区长度,但如果需要,结果的值的类型将会被强制转换。
步骤
首先,导入所需的库 –
import numpy as np
使用array()方法创建一个numpy数组。我们添加了int类型的元素,其中包含nan。
arr = np.array([[5, 10, 15], [20, np.nan, 30]])
显示数组 –
print("Our Array...\n",arr)
检查尺寸 −
print("\nDimensions of our Array...\n",arr.ndim)
获取数据类型:
print("\nDatatype of our Array object...\n",arr.dtype)
将下面的英文翻译成中文,不解释,保留HTML格式:
要计算数组元素在给定轴上的累积乘积,并将NaN视为1,可以使用nancumprod()方法。在遇到NaN时,累积乘积不会发生变化,并且前导的NaN会被替换为1。对于全为NaN或为空的切片,返回1。除非指定了out参数,否则该方法返回一个保存结果的新数组,如果指定了out参数,则返回它。
print("\nCumulative Product of array elements...\n",np.nancumprod(arr, axis = 0))
示例
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], [20, np.nan, 30]])
# Display the array
print("Our Array...\n",arr)
# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)
# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)
# To return the cumulative product of array elements over a given axis treating NaNs as one, use the nancumprod() method
print("\nCumulative Product of array elements...\n",np.nancumprod(arr, axis = 0))
输出
Our Array...
[[ 5. 10. 15.]
[20. nan 30.]]
Dimensions of our Array...
2
Datatype of our Array object...
float64
Cumulative Product of array elements...
[[ 5. 10. 15.]
[100. 10. 450.]]