numpy.ufunc.identity

时间:2017-01-28 06:01:48

标签: python numpy

我想知道r = ufct.identity在函数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)

1 个答案:

答案 0 :(得分:4)

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

您显示的ufunc_reduce功能事先并不知道它将给出什么功能,因此无法使用0或{{1进行硬编码}}。它通过检查ufunc的1属性来获得正确的值。