【发布时间】:2021-06-08 13:04:35
【问题描述】:
所以,我正在研究管道,但在安装时偶然发现了这个错误:
Traceback (most recent call last):
File "C:/Users/Shawn/Documents/temp/bool_issue.py", line 7, in <module>
_assert_all_finite(array, False)
File "C:\Users\Shawn\AppData\Local\Programs\Python\Python38\lib\site-packages\sklearn\utils\validation.py", line 103, in _assert_all_finite
if _object_dtype_isnan(X).any():
AttributeError: 'bool' object has no attribute 'any'
这实际上是一些自定义代码来测试问题,见下文
在回溯之后,我看到 _object_dtype_isnan() 采用一个 numpy 数组,并以布尔掩码(布尔数组)的形式返回另一个 numpy 数组。
但是,由于某种原因,它有时会直接返回一个布尔值。
重现错误的代码:
import numpy as np
import pandas as pd
from sklearn.utils.validation import _assert_all_finite
bad_array = np.array(['F', 'F', 'M', 'F', 'M', pd.NA, 'F', 'M'], dtype='object')
_assert_all_finite(bad_array, False) # Raises AttributeError
【问题讨论】:
标签: python pandas numpy scikit-learn