Python 我有描述我的数据的数组';的空间位置和关联值。如何将其制作成网格?

Python 我有描述我的数据的数组';的空间位置和关联值。如何将其制作成网格?,python,arrays,numpy,mesh,Python,Arrays,Numpy,Mesh,我对空间数据进行了奇怪的整理。它描述了温度之类的东西。有两个空间坐标数组,x和y。以下是这些数据的排列方式: plt.scatter(x,y, c=x.index, cmap=plt.cm.rainbow) for label, xi, yi in zip([str(s) for s in range(x.size)], x, y): plt.annotate(label, xy=(xi, yi)) plt.show() 我还有一个描述温度场的向量u。每个条目u[i]对应于位置x[i

我对空间数据进行了奇怪的整理。它描述了温度之类的东西。有两个空间坐标数组,
x
y
。以下是这些数据的排列方式:

plt.scatter(x,y, c=x.index, cmap=plt.cm.rainbow)
for label, xi, yi in zip([str(s) for s in range(x.size)], x, y):
    plt.annotate(label, xy=(xi, yi))
plt.show()

我还有一个描述温度场的向量
u
。每个条目
u[i]
对应于位置
x[i]
y[i]
如何将
u
重塑为网格,其中每个网格位置对应于
x
y
描述的位置?
例如,这可以允许我将
u
的网格放入
plt.contourf
中,它看起来类似于
plt.scatter(x,y,c=u)
。我不想假设网格是正方形的

以下是我迄今为止所尝试的:

nx = len(np.unique(x))
ny = len(np.unique(y))
U = np.reshape(u, (nx, ny))

一列中所有
x
的值是否完全相同?如果是这样的话,我很确定你可以简单地
lexsort
x
y
。这将为您提供一个索引向量,然后将其应用于
x
y
u
x
是一个向量,而不是矩阵,因此我认为它只有一列。数值不尽相同。我是指绘图中的表观列。例如
x[[0、3、23、34等]
将是最左边的列。还是不完全一样吗?@PaulPanzer是的,它们完全一样。我将如何使用
lexsort
?类似于
idx=np.lexsort((x,y))
(可能您必须交换x和y,不确定)。然后是
xo=x[idx]
yo=y[idx]
uo=u[idx]
。一列中所有
x
的值是否完全相同?如果是这样的话,我很确定你可以简单地
lexsort
x
y
。这将为您提供一个索引向量,然后将其应用于
x
y
u
x
是一个向量,而不是矩阵,因此我认为它只有一列。数值不尽相同。我是指绘图中的表观列。例如
x[[0、3、23、34等]
将是最左边的列。还是不完全一样吗?@PaulPanzer是的,它们完全一样。我将如何使用
lexsort
?类似于
idx=np.lexsort((x,y))
(可能您必须交换x和y,不确定)。然后
xo=x[idx]
yo=y[idx]
uo=u[idx]