我有两个自变量f(x,y)
的Python函数,该函数返回一个标量。我也有两个np.array
可能的参数,xs
和ys
。我想计算一个形状为(xs.size, ys.size)
的二维numpy数组,该数组包含在从f
和xs
提取的参数的所有组合中求值的ys
值。结果应等于
np.array([[f(x,y) for y in ys] for x in xs])
我想尽可能有效地实现这一点,并从多个处理器内核中受益。
f
没有任何副作用。我尝试使用numpy.vectorize
,但未能成功使用它。例如。 numpy.outer
完全符合我对f=operator.__mul__
特殊情况的要求。作为附加的警告,尽管可能不立即相关,但数组之一(例如
ys
)不包含数字,而是包含scipy.interpolate.interp1d
返回的对象。函数f
通过这些插值的scipy.integrate.quad
计算定积分。所得矩阵仍只包含数字。 最佳答案
假设f是python函数,请将numpy.frompyfunc()
与.outer()
一起使用
np.frompyfunc(f, 2, 1).outer(xs, ys)
关于python - 获取功能评估的所有组合的矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35607453/