python中NAN与INF

NAN: Not a number 不是一个数字的意思,但是它属于浮点类型

INF: infinity 无穷大,也属于浮点类型 np.inf 表示正无穷大 -np.inf 表示负无穷大

import numpy as np
print(type(np.inf), type(np.NAN))
print(np.NAN != np.NAN) # True
print(np.NAN+1) # nan

data = np.arange(24).reshape(4, 6).astype(float) # np.NAN, np.INF为浮点型
data[0,1], data[2,2], data[3,3] = np.nan, np.nan, np.inf
print(data)
print(np.isnan(data))
print(data[np.isnan(data)]) # 筛选np.NAN
print(data[~np.isnan(data)]) # 筛选出非 np.NAN 注意变为一维
location = np.where(np.isnan(data))
print(location) # location[0]:NAN所在行 location[1]:NAN所在列
data_new = np.delete(data, location[0], axis=0) # 删除NAN所在行
print(data_new)

scores = np.array([[‘59’, ‘89’], [‘90’, ‘32’], [‘78’, ‘45’], [‘34’, ‘NAN’], [‘NAN’, ‘56’], [‘23’, ‘56’]])
print(scores)
scores2 = scores.astype(float)
print(scores2.shape[1])
for x in range(scores2.shape[1]):
rows = scores2[:, x] # 所有行, 列为0或1
print(rows)
non_rows = rows[~np.isnan(rows)]
mean = non_rows.mean()
rows[np.isnan(rows)] = mean # 用平均值代替NAN
print(scores2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值