TypeError: ufunc ‘isnan‘ not supported for the input types, and the inputs could not be safely coerc
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''。具体情况:同一段代码,在旧电脑的环境
·
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)
更多推荐
已为社区贡献1条内容
所有评论(0)