相关疑难解决方法(0)

SciPy与NumPy的关系

SciPy似乎在其自己的命名空间中提供了大多数(但不是全部[1])的NumPy函数.换句话说,如果有一个名为的函数numpy.foo,几乎可以肯定的是scipy.foo.大多数情况下,两者看起来完全相同,通常甚至指向同一个函数对象.

有时,他们是不同的.举一个最近出现的例子:

  • numpy.log10是一个返回NaNs为负参数的ufunc ;
  • scipy.log10 返回负参数的复数值,并且看起来不是ufunc.

同样可以说,大约log,log2logn,但不是关于log1p[2].

另一方面,numpy.exp并且scipy.exp对于相同的ufunc看起来是不同的名称.这也是真正的scipy.log1pnumpy.log1p.

另一个例子是numpy.linalg.solveVS scipy.linalg.solve.它们相似,但后者提供了一些额外的功能.

为什么明显重复?如果这是numpyscipy命名空间的批量导入,为什么行为和缺失函数的微妙差异?是否有一些总体逻辑可以帮助消除混乱?

[1] ,,numpy.min 和其他几个人都在没有同行的命名空间.numpy.maxnumpy.absscipy

[2]使用NumPy 1.5.1和SciPy 0.9.0rc2进行测试.

python numpy scipy

243
推荐指数
6
解决办法
4万
查看次数

保持numpy ndarray子类作为转换期间的返回值.安全设置__array_priority__?

我试图子类numpyndarray类,并且已经取得了一些运气.我想要的行为几乎与文档中给出的示例完全相同.我想name在数组中添加一个参数(我用它来跟踪数据最初的来源).

class Template(np.ndarray):
    """A subclass of numpy's n dimensional array that allows for a
    reference back to the name of the template it came from.
    """
    def __new__(cls, input_array, name=None):
        obj = np.asarray(input_array).view(cls)
        obj.name = name
        return obj

    def __array_finalize__(self, obj):
        if obj is None: return
        self.name = getattr(obj, 'name', None)
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了像这个问题一样,我想要任何涉及我的子类的转换来返回我的子类的另一个实例.

有时numpy函数会返回以下实例Template:

>>> a = Template(np.array([[1,2,3], [2,4,6]], name='from here')
>>> np.dot(a, np.array([[1,0,0],[0,1,0],[0,0,1]]))
Template([[1, 2, 3], …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy subclass

6
推荐指数
1
解决办法
361
查看次数

(numpy)__array_wrap__做什么?

我是第一次进入SciPy LinAlg模块,并且看到了以下功能:

def _makearray(a):
    new = asarray(a)
    wrap = getattr(a, "__array_prepare__", new.__array_wrap__)
    return new, wrap
Run Code Online (Sandbox Code Playgroud)

到底是__array_wrap__做什么的?我找到了文档,但是我不明白这个解释:

 At the end of every ufunc, this method is called on the input object with the
 highest array priority, or the output object if one was specified. The ufunc-
 computed array is passed in and whatever is returned is passed to the user. 
 Subclasses inherit a default implementation of this method, which transforms the
 array into a new instance …
Run Code Online (Sandbox Code Playgroud)

python numpy

5
推荐指数
1
解决办法
944
查看次数

标签 统计

numpy ×3

python ×3

arrays ×1

scipy ×1

subclass ×1