【问题标题】:How can I convert 3D data from three 1D arrays to one 2D array? [duplicate]如何将 3D 数据从三个 1D 数组转换为一个 2D 数组? [复制]
【发布时间】:2019-05-05 08:09:58
【问题描述】:

我在三个 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 之类的东西,尽管到目前为止我的研究还没有找到任何可行的解决方案。

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

【问题讨论】:

标签: python arrays numpy matplotlib


【解决方案1】:

正如@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))

【讨论】:

    猜你喜欢
    • 2017-09-11
    • 2014-09-16
    • 2017-11-02
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多