numpy.ufunc.identity 的用法

Nic*_*las 2 python numpy

我想知道r = ufct.identity在 function 里面是什么行ufunc_reduce。它只是像初始化操作一样r = 0吗?

a = np.array([2,3,4,5])
b = np.array([8,5,4])
c = np.array([5,4,6,8,3])

def ufunc_reduce(ufct, *vectors):
    vs = np.ix_(*vectors)
    r = ufct.identity
    for v in vs:
        r = ufct(r,v)
    return r

ufunc_reduce(np.add,a,b,c)
Run Code Online (Sandbox Code Playgroud)

Blc*_*ght 5

是的,对于 ufunc np.addufct.identity0。但对于另一个功能,它可能是别的东西。例如,np.multiply.identity1

ufunc_reduce您显示的函数事先不知道它将被赋予什么函数,因此不能硬编码以使用01。它通过检查identityufunc的属性来获取正确的值。