如何解决numpy.ndarray对象没有属性imshow
我正在尝试将python与jupyter笔记本一起使用,以提出一种方案,您可以握住智能灯泡并通过漫反射来从手上获取信息。我设法完成了所有这些工作,并将所有这些保存在变量PIX中:
PIX = np.array(pictures)
print(PIX.shape)
这将按预期输出(81,480,640,3)(81表示转换为RGB的可见光谱,以便灯能够得到它)。
但是,我现在想可视化数据,并且我认为imshow是完美的实现。我环顾四周,Datacamp对此进行了很好的总结,并从https://campus.datacamp.com/courses/biomedical-image-analysis-in-python/exploration?ex=11复制并粘贴。我更改了一些变量,以使脚本如下所示:
# Plot the images on a subplots array
fig,axes =
plt.subplots(int(PIX.shape[0]/9),int(PIX.shape[0]/9))
for i,ax in enumerate(axes):
axes[i].imshow(PIX[i,:,0],interpolation='none')
# Render the figure
plt.show()
同样,这很简单。但是,我得到了错误:
AttributeError Traceback (most recent call last)
<ipython-input-20-a7bb604d1828> in <module>
3
4 for i,ax in enumerate(axes):
----> 5 axes[i].imshow(PIX[i,interpolation='none')
6 # Render the figure
7 plt.show()
AttributeError: 'numpy.ndarray' object has no attribute 'imshow'
我尝试了'numpy.ndarray' object has no attribute 'imshow'和'numpy.ndarray' object has no attribute 'show' using matplotlib的修复,它们似乎也有类似的问题。但是,在我的情况下,所有修复程序似乎均不起作用。
任何帮助将不胜感激!
解决方法
axes
是2D ndarray,因此您必须使用两个索引。
或者,您可以替换
for i,ax in enumerate(axes)
使用
for i,ax in enumerate(axes.ravel())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。