Похоже, изображение, которое вы пытаетесь построить, является плоским, соответствующим [B, N], где N - 1x28x28, а B - 27455, что соответствует размеру вашего изображения (27455, 784). Это хорошо, если вы хотите подать его на линейный слой длиной 784 вектора. Чтобы построить это изображение, вы должны изменить его, чтобы оно соответствовало [27455, 1, 28, 28]. Вы можете попробовать это:
image = X_train_orig.iloc[index]
image = np.reshape(image.values, (28, 28))
plt.imshow(image)