【发布时间】:2014-11-06 21:43:43
【问题描述】:
我有一个 numpy 数组,其元素在 for 循环中更新:
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
for t in range(0,10):
imshow(a)
for i in range(0,a.shape[0]):
for j in range(0,a.shape[1]):
a[i][j] += 1
我想在每次迭代时显示数组,但是 imshow() 不起作用,它只是在循环终止后显示图像。
ps。我正在使用 Ipython 笔记本
我在网上找到了不同的东西,但它们都不能在我的电脑上运行(例如我尝试使用 matplotlib 的动画模块)
奇怪的是,如果我尝试使用标准 python 提示符执行此示例 (http://matplotlib.org/examples/animation/dynamic_image2.html),一切正常,而在 Ipython 笔记本上则无法正常工作。谁能解释一下为什么?
注意事项:
也许我过于简化了我的代码;
我正在研究森林火灾模型,数组是一个网格,其中 0 = 空站点、1 = 树、2 = 火灾。
在每个时间步(迭代):
- 一棵树被丢弃在一个随机选择的地点,如果该地点空闲,则种植这棵树
- 一棵树点燃的概率为 f
我想使用颜色图来显示数组,以可视化我的模型的演变
【问题讨论】:
-
只是一个旁注,你为什么不做类似
a += np.ones(a.shape)的事情? -
是的,我可以这样做,但我写下这个数组和这个 for 循环只是为了解释我的问题。这不是我正在处理的实际代码:)
标签: python arrays animation numpy matplotlib