【发布时间】:2021-12-22 07:41:26
【问题描述】:
我在网上看到很多创建轮廓图的例子,如下所示
import numpy as np
xlist = np.linspace(-3.0, 3.0, 3)
ylist = np.linspace(-3.0, 3.0, 4)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
cp = plt.contourf(X, Y, Z)
plt.colorbar(cp)
ax.set_title('Contour Plot')
ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()
现在这很简单,因为 numpy 中的 sqrt 函数将很乐意接受网格输入并评估所有兴趣点。但是,我不明白的是,如果我有自己的功能,我将如何做到这一点。例如,假设我有一个更复杂的函数,lambda nllh x1,x2 : my_function(x1,x2),它可以任意复杂,但接受两个标量,它本身返回一个标量。
当我尝试用我的函数以相同的方式实现它时(即上面相同的代码,除了 Z=nllh(X,Y) 行),我收到一个错误,输入数组维度没有任何意义,因为这个函数并非旨在将网格网格作为输入。我怎样才能纠正这个问题或让 python 理解函数 Z=nllh(X,Y) 需要独立评估网格值对而不是网格本身?
谢谢
【问题讨论】:
-
我想你在找
numpy.vectorize