如果我有一个函数,f(x)将一个1d数组作为参数并产生一个1d数组作为输出,我可以使用numpy.apply_along_axis将该函数应用于一行的二维数组X的每一行是f的有效参数.
现在我想用一个带两个参数的函数做类似的事情.例如,我有一个函数f(x,y),它将两个1d数组作为参数,我还有两个2d数组X,Y都有n行.我想对每对行应用f,产生一个又有n行的数组.
如何以有效的方式实现这一目标?
我也对变体感兴趣,其中f需要更多参数或涉及更高维数组:
例如,f可以取3个x,y,z形状的阵列(2,2); (3); (5,)并产生形状(4,4)的结果.
我有X,Y,Z形状(50,100,2,2); (50,100,3); (50,100,5)并想要一个形状的结果(50,100,4,4)
我想自动生成一些函数并自动导出它们.举一些具体的例子,假设我想构建一个模块,它提供接收信号并应用移动平均值/最大值/最小值/中值...的函数.
代码生成已经有效:
for fun in (:maximum, :minimum, :median, :mean)
fname = symbol("$(fun)filter")
@eval ($fname)(signal, windowsize) = windowfilter(signal, $fun, windowsize)
end
Run Code Online (Sandbox Code Playgroud)
给我功能
maximumfilter
minimumfilter
...
Run Code Online (Sandbox Code Playgroud)
但是如何自动导出它们?例如,我想在上面的循环中添加一些代码
export $(fname)
Run Code Online (Sandbox Code Playgroud)
并在创建后导出每个函数.
Pipenv 是管理 Python 环境的好工具。但有些事情需要全球化。例如,大多数命令行工具应该始终可用,并且 jupyter 应与非 python 内核一起使用。
pipenv 也可以用于管理这样的全局 python 环境吗?如果是这样,如何?这是明智的做法吗?