这篇文章主要介绍“使用numpy对数组求平均时怎么忽略nan值”,在日常操作中,相信很多人在使用numpy对数组求平均时怎么忽略nan值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用numpy对数组求平均
这篇文章主要介绍“使用numpy对数组求平均时怎么忽略nan值”,在日常操作中,相信很多人在使用numpy对数组求平均时怎么忽略nan值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用numpy对数组求平均时怎么忽略nan值”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在对numpy数组求平均np.mean()或者求数组中最大最小值np.max()/np.min()时,如果数组中有nan,此时求得的结果为:nan,那么该如何忽略其中的nan呢?
此时应该用另一个方法
np.nanmean()
,np.nanmax()
,np.nanmin()
import numpy as npA = np.array([[ 7, 4, 5, 7000], [ 1, 900, 9, nan], [ 5, -1000, nan, 100], [nan, nan, 3, 1000]])#Compute NaN-nORMsL1_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 rowsA_L1 = A / L1_norm[:,np.newaxis] # A.values if DataframeA_L2 = A / L2_norm[:,np.newaxis]A_max = A / max_norm[:,np.newaxis]#Check that it workedL1_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_afterOut[182]: array([1., 1., 1., 1.]) In[183]: L2_norm_afterOut[183]: array([1., 1., 1., 1.]) In[184]: max_norm_afterOut[184]: array([1., 1., 1., 1.])
rom numpy import nan, nanmeanfrom sklearn.preprocessing import StandardScalerscaler = 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])
到此,关于“使用numpy对数组求平均时怎么忽略nan值”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!
--结束END--
本文标题: 使用numpy对数组求平均时怎么忽略nan值
本文链接: https://www.lsjlt.com/news/322326.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0