chendepeng
发布于

数组、列表中nan/inf替换为字符串

数组,列表(支持嵌套的数组列表) 中nan,inf转“nan", "inf"
需要的导入numpy

def nan_to_str(value nan=None, inf=None):
    # value: 要处理的数组或列表
    # nan:nan要替换的数据,默认为“nan”
    # inf:inf要替换的数据,默认为“inf”
    def nan_to_str_func_(x):
        return str(x) if str(x) in ["nan", "inf"] else x
    
    def nan_to_str_(v):
        if "nan" in str(v) or "inf" in str(v):
            try:
                v = v if isinstance(v, np.ndarray) else np.array(v)
                # frompyfunc:将python方法转化为numpy的方法(增加广播机制)
                v = np.frompyfunc(nan_to_str_func_, 1, 1)(v)
            except Exception as e:
                v = [nan_to_str_(i) if isinstance(i, (np.ndarray, list)) else nan_to_str_func_(i) for i in v]
        return v.tolist() if isinstance(v, np.ndarray) else v
    return nan_to_str_(value)
浏览 (43)
点赞
收藏
评论