如何计算Python中的外部函数?

2023-12-10

如果我有一个像 func(x,y) = cos(x) + sen(y) + x*y 这样的随机函数,如何将它应用于 2 个数组中的所有元素对?

I found https://docs.scipy.org/doc/numpy/reference/ generated/numpy.outer.html和 发现所有基本操作都有外部函数。但如果我想用自定义函数来实现呢?

想象 array1 是 [1,2],array2 是 [3,4],我想要应用的函数称为 f(float, float)

预期输出是

[f(1,3) f(1,4)

f(2,3) f(2,4)]


只要您确保以正确广播的方式编写函数,您就可以这样做

func(x_arr[:, None], y_arr)

将其应用于两个一维数组中的所有元素对x_arr and y_arr.

例如,要以广播的方式编写示例函数,您可以将其编写为

def func(x, y):
    return np.cos(x) + np.sin(y) + x*y

since np.cos, np.sin, +, and *跨数组广播和矢量化。


至于不播吗?好吧,有些人可能会建议np.vectorize,但这有很多棘手的事情你必须记住,比如保持一致的输出dtype并且没有副作用。如果您的函数不广播,我建议仅使用列表理解:

np.array([[func(xval, yval) for yval in y_arr] for xval in x_arr])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算Python中的外部函数? 的相关文章

随机推荐