gpt4 book ai didi

python - 如何计算 python 中的外部函数?

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:55 26 4
gpt4 key购买 nike

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

我找到了 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_arry_arr 中的所有元素对。

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

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

因为 np.cosnp.sin+* 跨数组广播和向量化。


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

np.array([[func(xval, yval) for yval in y_arr] for xval in x_arr])

关于python - 如何计算 python 中的外部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45496096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com