【发布时间】:2018-11-15 04:46:55
【问题描述】:
我正在尝试用一组堆叠成第三维的 2d numpy 数组制作一部电影(或任何可以按顺序显示结果的东西)。
为了说明我在说什么,想象一个 9x3x3 numpy 数组,其中我们有 9 个不同的 3x3 数组的序列,如下所示:
import numpy as np
#creating an array where a position is occupied by
# 1 and the others are zero
a = [[[0,0,1],[0,0,0],[0,0,0]],[[0,1,0],[0,0,0],[0,0,0]], [[1,0,0],[0,0,0],[0,0,0]], [[0,0,0],[0,0,1],[0,0,0]], [[0,0,0],[0,1,0],[0,0,0]], [[0,0,0],[1,0,0],[0,0,0]], [[0,0,0],[0,0,0],[0,0,1]], [[0,0,0],[0,0,0],[0,1,0]], [[0,0,0],[0,0,0],[1,0,0]]]
a = np.array(a)
这样 a[0], ... a[n] 会返回如下内容:
In [10]: a[1]
Out[10]:
array([[0, 1, 0],
[0, 0, 0],
[0, 0, 0]])
但是改变 1 的位置并用以下几行绘制一个简单的图:
img = plt.figure(figsize = (8,8))
plt.imshow(a[0], origin = 'lower')
plt.colorbar(shrink = 0.5)
plt.show(img)
会给出输出:
那么创建电影的最合适的方法是什么,显示与上图相似的结果,每个结果都堆叠在“a”的第一个维度中,以便观察每个结果如何发生变化不同的步骤(帧)?
感谢您的关注和时间!
【问题讨论】:
-
你的最后一句话不是很清楚,你是真的想为情节设置动画还是只是将所有帧堆叠成水平或垂直条带?
-
我想为它制作动画。
标签: python arrays python-3.x numpy matplotlib