什么Scipy模块实际上调用Numpy模块?

时间:2016-06-02 21:46:50

标签: python numpy scipy

我很惊讶Scipy中的某些模块实际上并不是库的一部分,而是调用Numpy中的模块。

所有人的一个例子是linalg

import scipy
scipy.linalg

这给出了

  

AttributeError:' module'对象没有属性' linalg'

另一方面,从Scipy调用它的正确方法是

from scipy import linalg
scipy.linalg

必须是

的句柄
numpy.linalg

这是如何工作的?从技术上来说,Numpy和Scipy之间的区别是什么?

1 个答案:

答案 0 :(得分:3)

  

从Scipy调用它的正确方法是

from scipy import linalg
scipy.linalg
     

必须是

的句柄
numpy.linalg

都能跟得上!他们是完全不同的模块。此外,它应该是import scipy.linalg然后使用scipy.linalgfrom scipy import linalg,然后使用linalg

如果你想知道SciPy模块是否真的来自NumPy,最简单的方法就是以交互方式查看它:

In [9]: scipy.random
Out[9]: <module 'numpy.random' from '/usr/local/lib/python2.7/dist-packages/numpy/random/__init__.pyc'>

In [10]: scipy.linalg
Out[10]: <module 'scipy.linalg' from '/usr/local/lib/python2.7/dist-packages/scipy/linalg/__init__.pyc'>

正如您所看到的,numpy中的一个在输出中显示numpy。这是一个IPython会话,但是常规的Python交互会话会说类似的东西。