20【numpy中的nan和常用方法】02numpy中填充nan

本文介绍了如何在numpy数组中处理缺失值(nan),通过替换为每列的均值,并提供了一个自定义函数。文章还探讨了数组遍历、检查缺失值的方法。此外,通过两个例题,分别展示了如何绘制评论数量的直方图和分析评论数与喜欢数的关系,强调了数据可视化的重要性和处理方法。
摘要由CSDN通过智能技术生成

ndarray中nan的替换(均值)

ndarray中存在nan,如何操作才能够将nan替换为每一列的均值?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 判断这一列中是否有nan数据
for i in range(arr.shape[1]):  # 对列进行遍历
    current_col=arr[:,i]  # 当前的这一列
    # 判断当前的这一列中是否有nan数据  如果有  有几个
    nan_num=np.count_nonzero(current_col!=current_col)  # 这一列中nan数据的个数
    
    if nan_num!=0:  # 说明这一列数据中有nan数据
        not_nan_array=current_col[current_col==current_col]  # 取出这一列中不为nan的数据  返回的是一个数组
        # 求出这一列中不为nan的数据构成的数组的均值  arr.mean()
        # 用这一列的均值来替换这一列的nan数据
        # 取出这一列的nan数据
        # current_col[current_col!=current_col]
        # current_col[np.isnan(current_col)]
        # np.isnan(arr)  将数组中的nan数据标记为True  否则标记为False
        current_col[np.isnan(current_col)]=not_nan_array.mean()  # 赋值

在这里插入图片描述
由于 使用这一列的均值来填充这一列的缺失值数据 是一种很常用的方法,所以我们可以将这个方法定义为一个函数,以后需要使用的时候直接调用这个函数就可以了

在这里插入图片描述
简单看一下效果怎么样

先创造一个含有缺失值的数组对象

在这里插入图片描述
然后再调用这个函数

在这里插入图片描述
结果是正确的,我们可以看见,最后返回的数组对象中,它的缺失值部分的确是用这一列的均值来代替了。

这是完整的代码

# -*- coding: utf-8 -*-

'''
@Time    : 2020/12/05 19:49
@Author  : yuhui
@Email   : 3476237164@qq.com
@FileName: numpy_2.py
@Software: PyCharm
'''

"""19【numpy中的nan和常用方法】01numpy中的nan和常用统计方法"""

import numpy as np

def fill_array_nan(arr):
    """
    :param arr: 含有nan缺失值的数组对象
    :return: 用这一列的平均值来替换这一列的缺失值
    """
    # 对这个数组进行列遍历
    for i in range(arr.shape[1]):
        current_col=arr[:,i]  # 取出当前正在被遍历的一列
        # 检查当前的这一列中是否存在nan缺失值  如果有  有几个
        nan_array = current_col[current_col != current_col]  # 这一列中缺失值的数组
        if nan_array is not None:  # 数组不为空  说明存在缺失值
            not_nan_array = current_col[current_col == current_col]  # 这一列中不为nan的数据
            # 用正常值的均值来替换这一列的缺失值数据
            # current_col[current_col!=current_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值