试图用numpy构造另两个ndarray的函数时,操作数无法一起广播错误

2024-04-24 16:53:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了两个numpy数组。我想创建第三个数组作为这两个数组中每个元素的函数。我尝试了下面的方法,但没用。在

X = np.arange(-180., 180., 1.)
Y = X
X, Y = np.meshgrid(X, Y)
Z = np.ndarray([func(x, y) for (x, y) in zip(X, Y)])

我得到以下错误:

^{pr2}$

如果与解决方案相关,这三个数组的目的是在matplotlib中构建三维绘图:

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
        linewidth=0, antialiased=False)

Tags: 方法函数innumpy元素for错误np
1条回答
网友
1楼 · 发布于 2024-04-24 16:53:45

为什么要对Z使用ndarray,而不是(360360)np.array?在

替换这条线

Z = np.ndarray([func(x, y) for (x, y) in zip(X, Y)])

^{pr2}$

看看np.array()和{}之间的区别

t1 = np.ndarray([0, 1, 2, 3, 4])

t1.shape
Out[39]: (0, 1, 2, 3, 4)

t2 = np.array([0, 1, 2, 3, 4])

t2.shape
Out[41]: (5,)

相关问题 更多 >