添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

11_Numpy含有缺失值ndarray数组的求和,平均值的计算方法

通常情况下,ndarrya数组中会含有一个或多个缺失值(nan),这种情况下使用函数sum()来求和的话,会直接返回nan。这个时候可以使用函数nansum(),可以对缺失值(nan)以外的其他值进行求和。

机器学习时,对于缺失值的处理方法,在以后的文章中再进行介绍。

举例:使用函数np.genfromtxt()读取一个含有缺失值的csv文件。缺失值的部分将直接显示为nan。

import numpy as np
arr = np.genfromtxt('./data/sample_nan.csv', delimiter=',')
print(arr)
# [[ 11.  12.  nan  14.]
#  [ 21.  nan  nan  24.]
#  [ 31.  32.  33.  34.]]

使用nansum()进行求和

使用函数sun()的话,将直接返回nan。

print(arr.sum())
# nan
print(np.sum(arr))
# nan

使用函数nansum()的话,可以对缺失值(nan)以外的其他值进行求和。

print(np.nansum(arr))
# 212.0

也可以通过参数axis,来指定行或列的计算。

  • axis的使用可以参考以下链接:
    03_Numpy的数组各行,各列的求和,平均值,最大值,最小值,最大最小值差,标准差,方差等的计算
print(np.nansum(arr, axis=0))
# [ 63.  44.  33.  72.]
print(np.nansum(arr, axis=1))
# [  37.   45.  130.]

平均值,最大值,最小值等的计算

平均值,最大值,最小值,标准差,方差等的计算,可以使用函数np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd(), np.nanvar()。

print(np.nanmean(arr))
# 23.5555555556
print(np.nanmax(arr))
# 34.0
print(np.nanmin(arr))
# 11.0
print(np.nanstd(arr))
# 8.90831211237
print(np.nanvar(arr))
# 79.3580246914
                    11_Numpy含有缺失值ndarray数组的求和,平均值的计算方法通常情况下,ndarrya数组中会含有一个或多个缺失值(nan),这种情况下使用函数sum()来求和的话,会直接返回nan。这个时候可以使用函数nansum(),可以对缺失值(nan)以外的其他值进行求和。机器学习时,对于缺失值的处理方法,在以后的文章中再进行介绍。举例:使用函数np.genfromtxt()读取一个含有缺失...
				
在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定对应的索引很有用,对于返回一定区间内的索引不是很有效,至少我没有弄明白应该如何操作尴尬。下面先说一下where函数的用法吧。 (1)where函数的使用场景: 例如现在我生成了一个数组: import numpy as np arr=np.array([1,1,1,134,45,3,46,45,65,3,23424,234,12,12,3,546,1,2]) 现在arr是一个含有18个元素的ndarray类型的数组,后面就用数组来称呼它吧。假如我想返回数组中所
# -*- coding: utf-8 -*- #----------------------------------------------------------------------------------------------------------------------- __Author__ = 'assasin' __DateTime__ = '2020/1/5 15:13'...
获得元素最小的函数:min 示例代码:import numpy as npa = np.array([[1,2,3],[4,5,6]]) print(a.max()) #获取整个矩阵的最大 结果: 6 print(a.min()) #结果:1# 可以指定关键字参数axis来获得行最大(小)或列最大(小)
计算平均mIoU时,要忽略NaN来求平均 NaN是什么? :Not a Number(NaN),代表一个“不是数字”的,这个不能直接进行运算,但它却是一个Number类型! 在一个numpy数组求和、均时,如果这个数组里包含了nan,则程序会报错或者求出来的是nan,如下代码所示: >>> arr = np.array([1, 2, 3, 4, np.nan]) >>> arr.sum() >>> arr.mean()