Numpy将两个不同的linspace组合成一个坐标矩阵

时间:2019-04-04 04:35:02

标签: python-3.x numpy


mat=[]

for x in np.linspace(x_min, x_max,num_x):
    y=np.linspace(y_min, y_max,num_y)
    mat.append(list(zip([x]*len(y),y)))
mat=np.array(mat)

我可以使用循环来完成上述操作,但是我正在寻找一种更有效的方法。

1 个答案:

答案 0 :(得分:2)

使用np.meshgrid,请注意,它会为每个坐标重新调整一个N维数组,您必须对这些数组进行操作才能获得坐标对矩阵

  

从坐标矢量返回坐标矩阵。

     

在给定一维坐标数组x1,x2,…,xn的情况下,制作N-D坐标数组以对N-D网格上的N-D标量/矢量场进行矢量化评估。

x = np.linspace(x_min, x_max,num_x)
y = np.linspace(y_min, y_max,num_y)

XY = np.meshgrid(x,y)
# Here you have a tuple of 2 coordinate matrix

mat = np.array(XY).transpose()
# Transpose will transform your (2,num_y,num_x) array into
# the desired (num_x,num_y,2) array.