我想在我的代码中使用
scipy.spatial.distance.cosine
。如果我像import scipy.spatial
或from scipy import spatial
这样做,我可以导入spatial
子模块,但是如果我只是import scipy
,调用scipy.spatial.distance.cosine(...)
会导致以下错误:AttributeError: 'module' object has no attribute 'spatial'
。
第二个方法有什么问题?
scipy
来说,我们不导入所有子包的原因是有很多子包,并且许多子包具有大型扩展模块,需要消耗相当长的时间来加载。大多数程序不需要加载所有的scipy,所以如果我们总是导入所有的子包,那么这将给所有程序增加很多额外的开销。 - Robert Kern