python - 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()。OneHotEncoder
问题描述
cat_features = train_data.dtypes[train_data.dtypes == 'object'].index
ohe = OneHotEncoder(cat_features, handle_unknown='ignore')
ohe.fit_transform(train_data)
结果是
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我该如何解决?
解决方案
您正在将数组与字符串进行比较,但 numpy 只能单独比较数组的元素。所以 numpy 返回一个布尔值数组。
现在由您决定是否要确保.any()
element isTrue
或.all()
elements are True
。
如果您试图获取 type 元素的索引'object'
,请尝试列表理解:
cat_features = [td for td in train_data if td.dtype == 'object']
这为您提供了所有train_data
类型为 的元素的列表'object'
。
推荐阅读
- ruby - 使用 Dir.chdir 处理带有空格的路径名
- python - 在用户模型之外散列密码字段 - Django
- python - 如何在while循环python中从每个循环中收集信息
- javascript - 在Javascript中递归创建选择菜单
- python - 刷新网络应用程序会导致删除的文件重新出现(烧瓶)
- python - 数据框列的单独值计数
- javascript - 试图阻止 Yup 表单验证接受 -0 作为正整数
- pytest - 导入 pytest 后出现错误
- python - 如何在python中随机分配治疗组?
- pygame - Spyder 未检测到 Pygame 模块