如何将3D数据从三个1D阵列转换为一个2D阵列?

时间:2018-12-04 00:04:50

标签: python arrays numpy matplotlib

我在三个1D数组中有一些3D数据,每个x,y,z都有一个。其中所有三个数组的长度相等,但数据范围为N * M。例如:

x = [1, 2, 3, 1, 2, 3]
y = [1, 1, 1, 2, 2, 2]
z = [11, 12, 13, 14, 15, 16]

我想使用matplotlib的函数之一来绘制此图,其中大多数函数需要输入一个大小为N * M的2D数组,即:

z = [[11, 12, 13],
     [14, 15, 16]]   

我知道我可以在python中编写一些循环来遍历三个原始数组,以将数据转换为所需的N * M格式,但是我的问题是:是否存在预先存在的python库或函数来执行此操作?可能使用了numpy之类的工具,尽管到目前为止我的研究还没有找到任何可行的解决方案。

顺便说一句:我认为当前的标题不能很好地描述问题,因此我愿意提出更好的标题建议。

1 个答案:

答案 0 :(得分:0)

如@Daniel Mesejo的评论中所述,您可以在'numpy'库中使用'reshape'例程:

import numpy as np

z = np.array([11, 12, 13, 14, 15, 16])
# set values for number of rows (N) and columns (M), in a way that N*M = len(z)
N = 2
M = 3
new_z = np.reshape(z, (N,M))