6.29数据分析学习笔记
#一、NAN与INF值
#NAN:not a number,表示不是一个数字,但它本身是浮点类型.np.NAN != np.NAN,NAN与任何值进行任何运算,结果都为NAN
#INF:Infinity,无穷大,也是浮点类型。np.inf表示正无穷大,-np.inf表示负无穷大,inf一般出现在除数为0的时候
import numpy as np
import pandas as pd
a1 = np.random.randint(0,10,size = (4,7)).astype(np.float)
a1[0,1] = np.NAN
a1[1,2] = np.NAN
np.NAN == np.NAN
print(a1)
print(a1[0,1]*2)
#二、NAN值的处理
#1、删除所有NAN值,删除后数组会变为一维数组
# a1[~np.isnan(a1)]
#2、删除空值所在的行
lines = np.where(np.isnan(a1))[0]
a2 = np.delete(a1,lines,axis = 0)
print(a2)
#3、替换NAN值
scores = np.loadtxt(r'C:\Users\chen\Documents\Jupyter\data\test3.csv',skiprows = 1,delimiter = ',',encoding='ANSI',dtype=np.str)
scores[scores == ''] = np.NAN
scores1=scores.astype(np.float)
scores2 = scores1.copy()
scores1[np.isnan(scores1)] = 0
print(scores1)
scores1.sum(axis = 1)
for x in range(socres2.shape[1]):
col = scores2[:,x]
col1 = col[~np.isnan(col)]
mean=col1.mean()
col[np.isnan(col)]=mean
scores2[:,x]=col
print(scores2)