沧海一幻觉
从一维向量生成标量的函数 g(x) 可以扩展到任意更高的维度,如下所示:import numpy as npdef myfunc(x): return sum(x)def f( g, x ): if len(x.shape) == 1: return g(x) if len(x.shape) > 1: return np.array( [f(g,v) for v in x] )# Test with one dimensional inputres = f( myfunc, np.array( [0.,1.,2.] ) )print( res )# Test with two dimensional inputres = f( myfunc, np.array( [[0.,1.,2.],[3.,4.,5.]] ) )print( res )# And, still more dimensionsres = f( myfunc, np.ones( (3,2,2) ) )print( res )产生,3.0[ 3. 12.][[ 2. 2.] [ 2. 2.] [ 2. 2.]]