【发布时间】:2021-06-02 19:49:02
【问题描述】:
x = np.array[[[8, 7, 1, 0, 3],
[2, 8, 5, 5, 2],
[1, 1, 1, 1, 1]],
[[8, 4, 1, 0, 0],
[6, 8, 5, 5, 2],
[1, 1, 1, 1, 1]],
[[2, 4, 0, 2, 3],
[2, 5, 5, 3, 2],
[1, 1, 1, 1, 1]],
[[4, 7, 2, 8, 0],
[1, 3, 6, 5, 2],
[1, 1, 1, 1, 1]]]
我想使用matplotlib 库的imshow() 命令从这个NumPy 文件中获取图像,但我不应该将其转换为3d 数组。有没有办法读取 3D 数组并将其绘制为 2D 像这张图片。
如果我无法解释,我通常需要将我们必须的数组转换为 2D 并绘制它。通常我可以为此使用np.concatenate 或np.append 之类的命令并获取以下数组。
x = np.array[[[8, 7, 1, 0, 3, 8, 4, 1, 0, 0, 2, 4, 0, 2, 3, 4, 7, 2, 8, 0],
[2, 8, 5, 5, 2, 6, 8, 5, 5, 2, 2, 5, 5, 3, 2, 1, 3, 6, 5, 2],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
但我需要绘制它而不将其转换为 2D。
【问题讨论】:
-
“代表性”情节没有帮助。你想绘制什么?积分?线?你会展示什么?你有一个 (4,3,5) 数组。您如何将其映射到情节?
-
如我所写,我会将数组中的第 3 个维度相加得到一个二维数组。
-
如果不将其转换为二维数组,您将无法获得该图。
-
大多数 NumPy 方法不会改变原始数组;如果你想使用这样的方法,你可以运行
.copy()来复制原始文件,将其重新格式化为你需要的 2D 版本,然后绘制它。 -
我看到你已经接受了我的回答,但我不得不说,即使没有使用
concatenate等显式复制,数据也会被复制
标签: python numpy matplotlib numpy-ndarray imshow