網站首頁 編程語言 正文
numpy對數組求平均時忽略nan值
在對numpy數組求平均np.mean()或者求數組中最大最小值np.max()/np.min()時,如果數組中有nan,此時求得的結果為:nan,那么該如何忽略其中的nan呢?
此時應該用另一個方法
-
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])
原文鏈接:https://blog.csdn.net/qq_41689620/article/details/84980267
相關推薦
- 2022-04-12 C#實現六大設計原則之里氏替換原則_C#教程
- 2023-01-30 delphi?判斷字符串是否包含漢字,正則版與非正則版實現_Delphi
- 2022-07-19 Python數據分析之?Pandas?Dataframe合并和去重操作_python
- 2023-03-29 golang?channel讀取數據的幾種情況_Golang
- 2022-07-21 OSPF的路由策略和流量抓取
- 2022-11-24 Clickhouse系列之整合Hive數據倉庫示例詳解_數據庫其它
- 2023-06-19 C++中的策略模式淺析_C 語言
- 2022-03-24 剖析C語言關鍵字之void,const,return_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支