如何在IPython循环期间内联显示ndarray图像?

Dim*_*ims 4 python matplotlib jupyter-notebook

以下代码

%matplotlib inline

for i in range(0, 5):
    index = np.random.choice(len(dataset))
    print('index:', index)
    image = dataset[index, :, :]
    print('image shape:', np.shape(image))
    plt.imshow(image)
Run Code Online (Sandbox Code Playgroud)

最后显示五个打印输出和一个单个图像jupyter notebook.

是否有可能在每次循环迭代中显示图像?

我能用图像文件做到这一点

for fullname in fullnames:
  print('fullname:', fullname)
  display(Image(filename=fullname))
Run Code Online (Sandbox Code Playgroud)

是否有可能对ndarrays做同样的事情?

UPDATE

写作

for i in range(0, 5):
   ...
   plt.figure()
   plt.imshow(image)
Run Code Online (Sandbox Code Playgroud)

让它变得更好,但并不完美.图像以多个显示,但都是在文本之后.

应该是交错的.

Gus*_*rra 11

尝试:

for i in range(0, 5):
   ...
   plt.figure()
   plt.imshow(image)
   plt.show()
Run Code Online (Sandbox Code Playgroud)

没有plt.show()数字仅在单元格完成执行后呈现并显示(即退出for循环).随着plt.show()您在每次迭代后强制渲染.