pycharm运行时出现一下错误:TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''。

具体情况:同一段代码,在旧电脑的环境上运行没报错,新电脑重新配置后却报错。

原因:库函数发生更新

解决:

# 在algorithms.py中的isin函数里面找到以下代码

if len(comps) > 1_000_000 and not is_object_dtype(comps):
    # If the the values include nan we need to check for nan explicitly
    # since np.nan it not equal to np.nan
    if np.isnan(values).any():
        f = lambda c, v: np.logical_or(np.in1d(c, v), np.isnan(c))
    else:
        f = np.in1d
elif is_integer_dtype(comps):
    try:
        values = values.astype("int64", copy=False)
        comps = comps.astype("int64", copy=False)
        f = htable.ismember_int64
    except (TypeError, ValueError, OverflowError):
        values = values.astype(object)
        comps = comps.astype(object)

将它改成:

if len(comps) > 1_000_000 and not is_object_dtype(comps):
    # If the the values include nan we need to check for nan explicitly
    # since np.nan it not equal to np.nan
    # if np.isnan(values).any():
     #   f = lambda c, v: np.logical_or(np.in1d(c, v), np.isnan(c))
   # else:
        f = np.in1d
elif is_integer_dtype(comps):
    try:
        values = values.astype("int64", copy=False)
        comps = comps.astype("int64", copy=False)
        f = htable.ismember_int64
    except (TypeError, ValueError, OverflowError):
        values = values.astype(object)
        comps = comps.astype(object)

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐