栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

sklearn没有属性“数据集”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sklearn没有属性“数据集”

sklearn
是一个包。这个答案很简洁地说:

当您导入软件包时,仅

__init__.py
该软件包文件中的变量/函数/类是直接可见的,子软件包或模块则不可见。

datasets
是的子包
sklearn
。这就是为什么发生这种情况:

In [1]: import sklearnIn [2]: sklearn.datasets---------------------------------------------------------------------------AttributeError      Traceback (most recent call last)<ipython-input-2-325a2bfc35d0> in <module>()----> 1 sklearn.datasetsAttributeError: module 'sklearn' has no attribute 'datasets'

但是,这样做的原因:

In [3]: from sklearn import datasetsIn [4]: sklearn.datasetsOut[4]: <module 'sklearn.datasets' from '/home/ethan/.virtualenvs/test3/lib/python3.5/site-packages/sklearn/datasets/__init__.py'>

就是当您

datasets
通过执行子程序加载子程序包时,
from sklearn importdatasets
它会自动添加到程序包的名称空间中
sklearn
。这是Python导入系统中鲜为人知的“陷阱”之一。

另外,需要注意的是,如果你看

__init__.py
sklearn
,你
看到
'datasets'
其中的一名成员
__all__
,但这只让你做:

In [1]: from sklearn import *In [2]: datasetsOut[2]: <module 'sklearn.datasets' from '/home/ethan/.virtualenvs/test3/lib/python3.5/site-packages/sklearn/datasets/__init__.py'>

最后要注意的一点是,如果您检查了其中一个,

sklearn
或者
datasets
将会看到,尽管它们是包装,但它们的类型是
module
。这是因为所有软件包都被视为模块-
但是,并非所有模块都是软件包。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号