数组、列表中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)