我有兩個值列表,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
提交
取消