为了账号安全,请及时绑定邮箱和手机立即绑定

从 2 个列表创建 3d 矩阵

从 2 个列表创建 3d 矩阵

萧十郎 2023-06-06 14:44:02
我有两个值列表,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)


查看完整回答
反对 回复 2023-06-06
?
眼眸繁星

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))


查看完整回答
反对 回复 2023-06-06
  • 2 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信