问题描述
x = np.random.randint(0,9,(4,4))
def foo(x):
y = np.rot90(x)
y = np.rot90(y)
return y
# This can be written as
y = rot90(rot90(x))
上述 foo 函数可以写成函数的组合,因为所有函数都接受单个参数并返回单个参数。
考虑下面的另一个 foo
函数,它比前面的函数稍微复杂一些,其中所有函数的元数在应用函数时都不相同
def swap_a_with_b(x,a,b):
x[x==b] = 100
x[x==a] = b
x[x==100] = a
return x
def foo(x):
a,b = np.argsort(np.bincount(x.flatten()))[-2:]
return swap_a_with_b(x,b)
函数foo
如何写成函数组合的形式,其中原始函数可以是任何numpy函数,而swap_a_with_b
,我可以使用所有原始函数,额外的辅助函数{{ 1}} 和任何匿名 swap_a_with_b
函数。
我知道如果我们使用 lambda
为高阶函数 functools.partial
的特定值 a
和 b
定义特定函数是可以做到的,但是我们可以将其作为带有 swap_a_with_b
的函数组合来实现吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)