python 的numpy庫(kù)中的mean()函數(shù)用法介紹
1. mean() 函數(shù)定義:
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()函數(shù)功能:求取均值
經(jīng)常操作的參數(shù)為axis,以m * n矩陣舉例:
axis 不設(shè)置值,對(duì) m*n 個(gè)數(shù)求均值,返回一個(gè)實(shí)數(shù)
axis = 0:壓縮行,對(duì)各列求均值,返回 1* n 矩陣
axis =1 :壓縮列,對(duì)各行求均值,返回 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)>>> now2matrix([[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]])>>> np.mean(now2) # 對(duì)所有元素求均值3.5>>> np.mean(now2,0) # 壓縮行,對(duì)各列求均值matrix([[ 2.5, 3.5, 4.5]])>>> np.mean(now2,1) # 壓縮列,對(duì)各行求均值matrix([[ 2.], [ 3.], [ 4.], [ 5.]])
補(bǔ)充拓展:numpy的np.nanmax和np.max區(qū)別(坑)
numpy的np.nanmax和np.array([1,2,3,np.nan]).max()的區(qū)別(坑)
numpy中numpy.nanmax的官方文檔
原理
在計(jì)算dataframe最大值時(shí),最先用到的一定是Series對(duì)象的max()方法(),最終結(jié)果是4。
s1 = pd.Series([1,2,3,4,np.nan])s1_max = s1.max()
但是筆者由于數(shù)據(jù)量巨大,列數(shù)較多,于是為了加快計(jì)算速度,采用numpy進(jìn)行最大值的計(jì)算,但正如以下代碼,最終結(jié)果得到的是nan,而非4。發(fā)現(xiàn),采用這種方式計(jì)算最大值,nan也會(huì)包含進(jìn)去,并最終結(jié)果為nan。
s1 = pd.Series([1,2,3,4,np.nan])s1_max = s1.values.max()>>>nan
通過(guò)閱讀numpy的文檔發(fā)現(xiàn),存在np.nanmax的函數(shù),可以將np.nan排除進(jìn)行最大值的計(jì)算,并得到想要的正確結(jié)果。
當(dāng)然不止是max,min 、std、mean 均會(huì)存在列中含有np.nan時(shí),s1.values.min /std/mean ()返回nan的情況。
速度區(qū)別
速度由快到慢依次:
s1 = pd.Series([1,2,3,4,5,np.nan])#速度由快至慢np.nanmax(s1.values) > np.nanmax(s1) > s1.max()
以上這篇python 的numpy庫(kù)中的mean()函數(shù)用法介紹就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Nginx+php配置文件及原理解析2. Intellij IDEA 2019 最新亂碼問(wèn)題及解決必殺技(必看篇)3. Android Manifest中meta-data擴(kuò)展元素?cái)?shù)據(jù)的配置與獲取方式4. java中throws實(shí)例用法詳解5. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效6. 關(guān)于HTML5的img標(biāo)簽7. Android自定義View實(shí)現(xiàn)掃描效果8. PHP5.0正式發(fā)布 不完全兼容PHP4 新增多項(xiàng)功能9. css3溢出隱藏的方法10. ASP.NET MVC獲取多級(jí)類(lèi)別組合下的產(chǎn)品
