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

标签 python numpy

如果我有一个像 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/

相关文章:

python - 如何根据反转的字典值修改 Pandas DataFrame?

python - 重复提取文本文件中两个分隔符之间的一行,Python

python - Azure Functions 可以用 Python 编写吗?

Python Selenium Firefox 脚本在重新启动驱动程序实例后崩溃

python - Colab 以 ^C 结束

python - 优化 Python 中 numpy 数组中元素的索引和检索?

python - VS Code Intellisense 不适用于 Conda Python 环境

python - 如何通过索引获取双端队列元素?

python - 给定一个邻接矩阵,如何用matplotlib画图?

python - 使用 Python/Numpy 的 dlib SVM 的最小示例