import numpy as np from numpy import * data = mat([[1,2,5,6,NaN], [4,NaN,1,4,5], [1,5,NaN,5,9], [1,2,5,6,4], [NaN,4,5,6,2]]) print(data[:,1].A) #求解的为所有的行 第一列 .A的作用是后面的均值 ''' [[ 2.] [nan] [ 5.] [ 2.] [ 4.]] ''' print(~isnan(data[:,1].A)) #第一列每个位置判断是否为空 是为True 否是False 加~是反过来的意思 ''' [[ True] [False] [ True] [ True] [ True]] ''' print(nonzero(~isnan(data[:,1].A))[0]) #所有非零的对应的下标 [0]是为了取出下表 ''' [0 2 3 4] ''' print(data[nonzero(~isnan(data[:,1].A))[0],1]) #取出第一类所有部位非空值的值 ''' [[2.] [5.] [2.] [4.]] ''' print(mean(data[nonzero(~isnan(data[:,1].A))[0],1])) #取出数的均值 ''' 3.25 ''' meanVal = mean(data[nonzero(~isnan(data[:,1].A))[0],1]) print(nonzero(isnan(data[:,1].A))[0]) ''' [1] ''' data[nonzero(isnan(data[:,1].A))[0],1] = meanVal print(data) ''' [[1. 2. 5. 6. nan] [4. 3.25 1. 4. 5. ] [1. 5. nan 5. 9. ] [1. 2. 5. 6. 4. ] [ nan 4. 5. 6. 2. ]] '''
nonzeros和isnan的结合
最新推荐文章于 2023-02-21 14:08:04 发布