老师请问为什么这个np.ones说是data type不认识?
来源:5-8 实现多元线性回归
xue109196
2018-06-19
这样就报错,但是单独拿出来就可以
以下是我的LR的代码
我把这个np.ones((len(x_train), 1))组成的全1的矩阵单独拿出来了。
最后还有一个问题就是我不能在pycharm里面run这个LinearRegression.py文件,因为说导入这个metrics.py是有问题的,这是为什么呢?不能用 import .metrics 要用 import metrics,不能加点;但是不用点就在notebook里面就过不了。是不是我之前没认真听课,没印象老师讲过这个区别。请老师解惑!
1回答
-
1)
我目测没有看出原因。请尝试下载课程的官方代码在你的环境下运行看是否有问题?如果没有问题请仔细比对(或者逐模块替换)看一下你的代码哪里有问题?课程官方代码传送门:https://github.com/liuyubobobo/Play-with-Machine-Learning-Algorithms
2)
由于这个课程不是Python的语法课程,所以对这个问题没有介绍。
简单回答如下:
直接import metrics可以理解成在当前运行环境中找metrics;
import .metrics相当于是相对路径,在当前你创建的模块下寻找metrics
注意:当前的运行环境和当前模块是两个概念。
对于Python来说,__main__和你设置的模块不在一个运行环境里,即使这个__main__的代码写在了你的模块文件中,但是从运行的角度是分离的,__main__称为top level enviroment。
所以,如果你写了import .metrics,在__main__中运行,就会寻找__main__.metrics,肯定找不到,就报错了。
但是你写import metrics,在模块外面运行的话,模块的其他文件没有加载进环境,会找不到metrics。
所以,模块中互相依赖的文件,import的时候要用.metrics,这是正确的模块编写方式。
但是不要在模块内部测试模块!要在模块外部测试模块。也就是你的__main__必须在模块的外面作为模块的使用者。
可以参考这个问答:https://coding.imooc.com/learn/questiondetail/52848.html
012018-06-21
相似问题