Python中的 numpy.nansum()
当我们想要计算给定轴上的数组元素的总和时,使用numpy.nansum()
函数,将非数字 (NaNs) 视为零。
Syntax : numpy.nansum(arr, axis=None, dtype=None, out=None, keepdims=’no value’)
Parameters :
arr : [array_like] Array containing numbers whose sum is desired. If arr is not an array, a conversion is attempted.
axis : Axis or axes along which the sum is computed. The default is to compute the sum of the flattened array.
dtype : The type of the returned array and of the accumulator in which the elements are summed. By default, the dtype of arr is used.
out : [ndarray, optional] A location into which the result is stored.
-> If provided, it must have a shape that the inputs broadcast to.
-> If not provided or None, a freshly-allocated array is returned.
keepdims : bool, optional
-> If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the original arr.
-> If the value is anything but the default, then keepdims will be passed through to the mean or sum methods of sub-classes of ndarray.
-> If the sub-classes methods does not implement keepdims any exceptions will be raised.
Return : A new array holding the result is returned unless out is specified, in which it is returned. The result has the same size as arr, and the same shape as arr, if axis is not None or arr, is a 1-d array.
代码#1:工作
# Python program explaining
# numpy.nansum() function
import numpy as geek
in_num = 10
print ("Input number : ", in_num)
out_sum = geek.nansum(in_num)
print ("sum of array element : ", out_sum)
输出 :
Input number : 10
sum of array element : 10
代码#2:
# Python program explaining
# numpy.nansum function
import numpy as geek
in_arr = geek.array([[2, 2, 2], [2, 2, geek.nan]])
print ("Input array : ", in_arr)
out_sum = geek.nansum(in_arr)
print ("sum of array elements: ", out_sum)
输出 :
Input array : [[ 2. 2. 2.]
[ 2. 2. nan]]
sum of array elements: 10.0
代码#3:
# Python program explaining
# numpy.nansum function
import numpy as geek
in_arr = geek.array([[2, 2, 2], [2, 2, geek.nan]])
print ("Input array : ", in_arr)
out_sum = geek.nansum(in_arr, axis = 1)
print ("sum of array elements taking axis 1: ", out_sum)
输出 :
Input array : [[ 2. 2. 2.]
[ 2. 2. nan]]
sum of array elements taking axis 1: [ 6. 4.]
注意:如果同时存在正无穷大和负无穷大,则总和将不是数字 (NaN)。如果存在正无穷和负无穷之一,则总和将是存在的正无穷或负无穷。
代码#4:
# Python program explaining
# numpy.nansum() function
import numpy as geek
in_arr1 = geek.array([2, -5, geek.nan, geek.inf])
in_arr2 = geek.array([1, 4, geek.inf, -geek.inf ])
print ("1st array elements: ", in_arr1)
print ("2nd array elements: ", in_arr2)
out_sum1 = geek.nansum(in_arr1)
out_sum2 = geek.nansum(in_arr2)
print ("sum of 1st array elements: ", out_sum1)
print ("sum of 2nd array elements: ", out_sum2)
输出 :
1st array elements: [ 2. -5. nan inf]
2nd array elements: [ 1. 4. inf -inf]
sum of 1st array elements: inf
sum of 2nd array elements: nan