使用numpy對數(shù)組求平均時如何忽略nan值
更新時間:2022年02月11日 11:50:00 作者:偶爾也吃雞
這篇文章主要介紹了使用numpy對數(shù)組求平均時如何忽略nan值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
numpy對數(shù)組求平均時忽略nan值
在對numpy數(shù)組求平均np.mean()或者求數(shù)組中最大最小值np.max()/np.min()時,如果數(shù)組中有nan,此時求得的結(jié)果為:nan,那么該如何忽略其中的nan呢?
此時應(yīng)該用另一個方法
np.nanmean()
,np.nanmax()
,np.nanmin()
使用np.mean()的效果
使用np.nanmean()的效果
numpy含nan值進行歸一化操作
方法一
import numpy as np A = np.array([[ 7, 4, 5, 7000], [ 1, 900, 9, nan], [ 5, -1000, nan, 100], [nan, nan, 3, 1000]]) #Compute NaN-norms L1_norm = np.nansum(np.abs(A), axis=1) L2_norm = np.sqrt(np.nansum(A**2, axis=1)) max_norm = np.nanmax(np.abs(A), axis=1) #Normalize rows A_L1 = A / L1_norm[:,np.newaxis] # A.values if Dataframe A_L2 = A / L2_norm[:,np.newaxis] A_max = A / max_norm[:,np.newaxis] #Check that it worked L1_norm_after = np.nansum(np.abs(A_L1), axis=1) L2_norm_after = np.sqrt(np.nansum(A_L2**2, axis=1)) max_norm_after = np.nanmax(np.abs(A_max), axis=1) In[182]: L1_norm_after Out[182]: array([1., 1., 1., 1.]) In[183]: L2_norm_after Out[183]: array([1., 1., 1., 1.]) In[184]: max_norm_after Out[184]: array([1., 1., 1., 1.])
方法二
rom numpy import nan, nanmean from sklearn.preprocessing import StandardScaler scaler = StandardScaler() A = [[ 7, 4, 5, 7000], [ 1, 900, 9, nan], [ 5, -1000, nan, 100], [nan, nan, 3, 1000]] scaler.fit(A) In [45]: scaler.mean_ Out[45]: array([4.33333333, -32., 5.66666667, 2700.]) In [46]: scaler.transform(A) Out[46]: array([[ 1.06904497, 0.04638641, -0.26726124, 1.40399977], [-1.33630621, 1.20089267, 1.33630621, nan], [ 0.26726124, -1.24727908, nan, -0.84893009], [ nan, nan, -1.06904497, -0.55506968]]) In [54]: nanmean(scaler.transform(A), axis=0) Out[54]: array([ 1.48029737e-16, 0.00000000e+00, -1.48029737e-16,0.00000000e+00])
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python操作MySQL數(shù)據(jù)庫9個實用實例
這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫9個實用實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-12-12詳解PyQt5中textBrowser顯示print語句輸出的簡單方法
這篇文章主要介紹了詳解PyQt5中textBrowser顯示print語句輸出的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08pycharm使用Translation插件實現(xiàn)翻譯功能
PyCharm是一款很流行的Python編輯器,經(jīng)常遇到在PyCharm中把中文翻譯成英文的需求,下面這篇文章主要給大家介紹了關(guān)于pycharm使用Translation插件實現(xiàn)翻譯功能的相關(guān)資料,需要的朋友可以參考下2023-05-05