SciPy似乎在其自己的命名空间中提供了大多数(但不是全部[1])的NumPy函数.换句话说,如果有一个名为的函数numpy.foo,几乎可以肯定的是scipy.foo.大多数情况下,两者看起来完全相同,通常甚至指向同一个函数对象.
有时,他们是不同的.举一个最近出现的例子:
numpy.log10是一个返回NaNs为负参数的ufunc ;scipy.log10 返回负参数的复数值,并且看起来不是ufunc.同样可以说,大约log,log2和logn,但不是关于log1p[2].
另一方面,numpy.exp并且scipy.exp对于相同的ufunc看起来是不同的名称.这也是真正的scipy.log1p和numpy.log1p.
另一个例子是numpy.linalg.solveVS scipy.linalg.solve.它们相似,但后者提供了一些额外的功能.
为什么明显重复?如果这是numpy对scipy命名空间的批量导入,为什么行为和缺失函数的微妙差异?是否有一些总体逻辑可以帮助消除混乱?
[1] ,,numpy.min 和其他几个人都在没有同行的命名空间.numpy.maxnumpy.absscipy
[2]使用NumPy 1.5.1和SciPy 0.9.0rc2进行测试.
我见过两个:
import scipy as sp
Run Code Online (Sandbox Code Playgroud)
和:
import scipy as sc
Run Code Online (Sandbox Code Playgroud)
在任何地方都有官方偏好吗?
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)
但是Scipy软件包没有类似的缩写.
在这个问题,sp建议,但链接到SciPy的文档实际上并没有指定sp过sc.