python 的numpy库中的mean()函数用法介绍


Posted in Python onMarch 03, 2020

1. mean() 函数定义:

numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globals._NoValue at 0x40b6a26c>)[source]
Compute the arithmetic mean along the specified axis.

Returns the average of the array elements. The average is taken over the flattened array by default, otherwise over the specified axis. float64intermediate and return values are used for integer inputs.

Parameters: a : array_like Array containing numbers whose mean is desired. If a is not an array, a conversion is attempted. axis : None or int or tuple of ints, optional Axis or axes along which the means are computed. The default is to compute the mean of the flattened array. New in version 1.7.0. If this is a tuple of ints, a mean is performed over multiple axes, instead of a single axis or all the axes as before. dtype : data-type, optional Type to use in computing the mean. For integer inputs, the default is float64; for floating point inputs, it is the same as the input dtype. out : ndarray, optional Alternate output array in which to place the result. The default is None; if provided, it must have the same shape as the expected output, but the type will be cast if necessary. See doc.ufuncs for details. 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 input array. If the default value is passed, then keepdims will not be passed through to the mean method of sub-classes of ndarray, however any non-default value will be. If the sub-classes sum method does not implement keepdims any exceptions will be raised.
Returns: m : ndarray, see dtype parameter above If out=None, returns a new array containing the mean values, otherwise a reference to the output array is returned.

2 mean()函数功能:求取均值

经常操作的参数为axis,以m * n矩阵举例:

axis 不设置值,对 m*n 个数求均值,返回一个实数

axis = 0:压缩行,对各列求均值,返回 1* n 矩阵

axis =1 :压缩列,对各行求均值,返回 m *1 矩阵

举例:

>>> import numpy as np

>>> num1 = np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6]])
>>> now2 = np.mat(num1)
>>> now2
matrix([[1, 2, 3],
  [2, 3, 4],
  [3, 4, 5],
  [4, 5, 6]])


>>> np.mean(now2) # 对所有元素求均值
3.5


>>> np.mean(now2,0) # 压缩行,对各列求均值
matrix([[ 2.5, 3.5, 4.5]])


>>> np.mean(now2,1) # 压缩列,对各行求均值
matrix([[ 2.],
  [ 3.],
  [ 4.],
  [ 5.]])

补充拓展:numpy的np.nanmax和np.max区别(坑)

numpy的np.nanmax和np.array([1,2,3,np.nan]).max()的区别(坑)

numpy中numpy.nanmax的官方文档

原理

在计算dataframe最大值时,最先用到的一定是Series对象的max()方法(),最终结果是4。

s1 = pd.Series([1,2,3,4,np.nan])
s1_max = s1.max()

但是笔者由于数据量巨大,列数较多,于是为了加快计算速度,采用numpy进行最大值的计算,但正如以下代码,最终结果得到的是nan,而非4。发现,采用这种方式计算最大值,nan也会包含进去,并最终结果为nan。

s1 = pd.Series([1,2,3,4,np.nan])
s1_max = s1.values.max()
>>>nan

通过阅读numpy的文档发现,存在np.nanmax的函数,可以将np.nan排除进行最大值的计算,并得到想要的正确结果。

当然不止是max,min 、std、mean 均会存在列中含有np.nan时,s1.values.min /std/mean ()返回nan的情况。

速度区别

速度由快到慢依次:

s1 = pd.Series([1,2,3,4,5,np.nan])
#速度由快至慢
np.nanmax(s1.values) > np.nanmax(s1) > s1.max()

以上这篇python 的numpy库中的mean()函数用法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多进程操作实例
Nov 21 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
Python模拟三级菜单效果
Sep 11 Python
对Python中的@classmethod用法详解
Apr 21 Python
python指定写入文件时的编码格式方法
Jun 07 Python
Python下简易的单例模式详解
Apr 08 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
如何解决django-celery启动后迅速关闭
Oct 16 Python
pycharm快捷键汇总
Feb 14 Python
Python标准库之typing的用法(类型标注)
Jun 02 Python
Python统计学一数据的概括性度量详解
Mar 03 #Python
python多维数组分位数的求取方式
Mar 03 #Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 #Python
python Plotly绘图工具的简单使用
Mar 03 #Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 #Python
python实现扫雷游戏
Mar 03 #Python
python实现从ftp服务器下载文件
Mar 03 #Python
You might like
php桌面中心(三) 修改数据库
2007/03/11 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
js截取函数(indexOf,join等)
2010/09/01 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
AC Lens:购买隐形眼镜
2017/02/26 全球购物
比利时家具购买网站:Home24
2019/01/03 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
学生党员公开承诺书
2014/05/28 职场文书
干部作风建设心得体会
2014/10/22 职场文书
2014年信访工作总结
2014/11/17 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
廉政承诺书2015
2015/04/28 职场文书
项目验收申请报告
2015/05/15 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
葬礼主持词
2015/07/02 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server