我在其他地方看到了类似的问题,但它们来自不同的代码。我的情况是使用 zip
转置数据,然后使用 imshow
:
import matplotlib.pyplot as plt
a=[[1,2,3],[4,5,6]]
img_data=zip(*a)
plt.imshow(img_data)
我得到了 类型错误:图像数据无法转换为浮点
最佳答案
zip
返回一个迭代器对象(在 python3 中,而不是诸如列表/数组之类的容器)。您想要做的是将 zip
对象转换为 imshow
可以理解的格式。有几个选项。
选项 1
转换为列表
-
img_data = list(zip(*a))
plt.imshow(img_data)
选项 2
将 a
转换为 numpy 数组并转置。由于您使用 zip
达到相同的效果,因此这是有道理的。
plt.imshow(np.array(a).T)
关于python - zip 不适用于 imshow : TypeError: Image data cannot be converted to float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47868014/