0

我在三个 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]

我想使用其中一个matplotlibs 函数来绘制它,其中大多数需要一个大小为 N*M 的单个二维数组作为输入,即:

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

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

顺便说一句:我认为当前的标题不能很好地描述问题,所以我愿意接受更好的标题的建议。

4

1 回答 1

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))
于 2018-12-04T01:01:37.573 回答