Pythonエラー集錦:matplotlib imshow()メソッド表示画像ヒント:Type Error:Invalid shape(100,100,5)for image data


テキストリンク:http://www.juzicode.com/archives/3502
 
エラーメッセージ:
matplotlibのimshow()メソッド画像表示時プロンプト:Type Error:Invalid shape(100,100,5)for image data
#juzicode.com; #vx:  code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

arr = np.full((100,100,3),100)
plt.imshow(arr)

arr = np.full((100,100,5),100)
plt.imshow(arr)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in 
      8 
      9 arr = np.full((100,100,5),100)
---> 10 plt.imshow(arr)

d:\python\python38\lib\site-packages\matplotlib\pyplot.py in imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, filternorm, filterrad, resample, url, data, **kwargs)
   2722         filternorm=True, filterrad=4.0, resample=None, url=None,
   2723         data=None, **kwargs):
-> 2724     __ret = gca().imshow(
   2725         X, cmap=cmap, norm=norm, aspect=aspect,
   2726         interpolation=interpolation, alpha=alpha, vmin=vmin,

d:\python\python38\lib\site-packages\matplotlib\__init__.py in inner(ax, data, *args, **kwargs)
   1445     def inner(ax, *args, data=None, **kwargs):
   1446         if data is None:
-> 1447             return func(ax, *map(sanitize_sequence, args), **kwargs)
   1448 
   1449         bound = new_sig.bind(ax, *args, **kwargs)

d:\python\python38\lib\site-packages\matplotlib\axes\_axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, filternorm, filterrad, resample, url, **kwargs)
   5521                               resample=resample, **kwargs)
   5522 
-> 5523         im.set_data(X)
   5524         im.set_alpha(alpha)
   5525         if im.get_clip_path() is None:

d:\python\python38\lib\site-packages\matplotlib\image.py in set_data(self, A)
    709         if not (self._A.ndim == 2
    710                 or self._A.ndim == 3 and self._A.shape[-1] in [3, 4]):
--> 711             raise TypeError("Invalid shape {} for image data"
    712                             .format(self._A.shape))
    713 

TypeError: Invalid shape (100, 100, 5) for image data

Python错误集锦:matplotlib imshow()方法显示图像提示:TypeError: Invalid shape (100, 100, 5) for image data_第1张图片
 
エラーの原因:
1、imshow()メソッドはnumpy配列を表示し、配列は2次元配列(階調図)、または3次元配列(カラー図)である.3次元配列の場合、その3次元は3または4でなければならず、ちょうど3チャネルまたは4通がカラー画像に対応している.エラー情報にも完全な提示がある.
    709         if not (self._A.ndim == 2
    710                 or self._A.ndim == 3 and self._A.shape[-1] in [3, 4]):

 
解決方法:
1、matploglibのimshow()メソッド3次元配列を表示すると、3チャネルまたは4チャネルのカラー画像しか表示されず、他のチャネル数は実際の意味がありません.