我有两个值列表,x和y:index = np.arange(-1,1,0.01)x = indexy = index在这个列表中,我想创建一个3d plot,为此我需要z,我目前有以下代码:z = []for i in x: temp_list = [] for i2 in y: temp_list.append(-(i**2+i2**2)) z.append(temp_list)有了这些数据,我可以生成下图:问题:如何(len(x), len(y)) 仅使用 numpy方法而不是使用此迭代生成具有形状的列表 z,我在我的示例中正在做?+1 for oneliners
2 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
使用广播:
import numpy as np
index = np.arange(-1, 1, 0.1)
Z = -(index[:,None] ** 2 + index[None, :] ** 2)
这样你就可以避免使用np.meshgrid. 如果轴不一样,你应该像这样使用它:
Z = -(x_axis[:,None] ** 2 + y_axis[None, :] ** 2)
眼眸繁星
TA贡献1873条经验 获得超9个赞
您可以使用numpy.meshgrid从生成 xy 坐标index
:
import numpy as np
index = np.arange(-1, 1, 0.1)
x, y = np.meshgrid(index, index)
z = -(np.square(x) + np.square(y))
添加回答
举报
0/150
提交
取消