Как отображать встроенные изображения ndarray во время цикла в IPython?

#python #matplotlib #jupyter-notebook

#python #matplotlib #jupyter-записная книжка #jupyter-ноутбук

Вопрос:

Следующий код

 %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)
  

отобразите пять распечаток и одно изображение в конце jupyter notebook .

Возможно ли отображать изображения на каждой итерации цикла?

Я смог сделать это с файлами изображений с

 for fullname in fullnames:
  print('fullname:', fullname)
  display(Image(filename=fullname))
  

Можно ли сделать то же самое с ndarrays?

Обновить

Написание

 for i in range(0, 5):
   ...
   plt.figure()
   plt.imshow(image)
  

сделал это лучше, но не идеально. Изображения отображаются несколькими, но все они идут ПОСЛЕ текста.

Должно чередоваться.

Ответ №1:

Попробуй:

 for i in range(0, 5):
   ...
   plt.figure()
   plt.imshow(image)
   plt.show()
  

Без plt.show() рисунков они отображаются и отображаются только после завершения выполнения ячейки (т. Е. Выхода из for цикла). С plt.show() вами принудительный рендеринг после каждой итерации.