关于导入模块的问题

来源:3-12 数据加载和简单的数据探索

Heartlaughter

2019-07-11

导入iris这种数据集我们都是这样导入的
from sklearn import datasets
iris = datasets.load_iris()
但是我去观察了一下sklearn这个文件夹的结构,发现sklearn这个folder下,有datasets这个folder,我们导入的是datasets这整个模块,而load_iris()这个方法在datasets/base.py中
我去实验了一下发现,from sklearn.datasets import base
然后base.load_iris()也是可以导入数据的
但是,我又做了另一个实验,我模仿sklearn这个文件夹的结构,创建了如下结构E:\pythonSrc\MachineLearing\Chap5-LinearRegression\SimpleLinearRegression\playML
我在SimpleLinearRegression这个文件夹下创建了一个notebook,playML文件夹下有老师写的SimpleLinearRegression.py这个文件,我自己写了一个mytest.py文件,里面只有一个返回hello字符串的hello()函数
然后在note里面写
from SimpleLinearRegression import playML
问题就是:playML.hello()为什么就不奏效呢
sklearn的结构是sklearn\datasets\base.py(base.py里面有load_iris()等函数)
而我的结构是:SimpleLinearRegression\playML\mytest.py(mytest.py里面有hello()函数)
恳请老师指教

写回答

1回答

liuyubobobo

2019-07-11

根据你的描述,你应该写:

playML.mytest.hello()


其实这个课程的所有代码,都是创建了一个模块(playML)

然后Jupyter Notebook在模块外面调用模块内的函数或者类。

可以仔细研究一下课程代码的文件结构和具体的调用方式。


本课程的所有代码都可以通过慕课网内部的github获得。传送门:https://git.imooc.com/coding-169/coding-169

从下一章第三小节的代码,就可以清晰地看到这个结构了:)https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/03-Test-Our-Algorithm


继续加油!:)

0
3
Heartlaughter
Thanks a lot
2019-07-11
共3条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程