我想知道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)
是的,对于 ufunc np.add,ufct.identity是0。但对于另一个功能,它可能是别的东西。例如,np.multiply.identity是1。
ufunc_reduce您显示的函数事先不知道它将被赋予什么函数,因此不能硬编码以使用0或1。它通过检查identityufunc的属性来获取正确的值。
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |