python - 无法修改 numpy 数组
问题描述
我被困在 Python 3 中练习图像:
import numpy as np
from matplotlib.image import imread
photo_data = imread('c:\jpeg.jpg')
photo_data[0,0,1] = 0
我收到这个错误
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-40-f19579124b68> in <module>()
1 photo = photo_data
2 print(type(photo))
----> 3 photo[0,0,1] = 0
4 plt.imshow(photo_data)
ValueError: assignment destination is read-only
我正在学习此代码似乎有效的在线课程,您能告诉我我哪里出错了吗?
解决方案
手头的问题是数组被设置matplotlib
为只读。确认:
print(photo_data.flags)
你会得到:
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : False
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
要使其可写,只需:
photo_data.setflags(write=1)
photo_data[0,0,1] = 0
推荐阅读
- grails - 带有 SAML 的 Grails 3 - 身份验证失败
- h2 - 在 H2 表名中使用大括号
- image - Xamarin 图像数据在流副本上无效
- sql - SQL Server 中的转换函数
- apache-spark - 如何通过 Spark 将用户定义的元数据添加到 S3 对象
- winapi - Win16 应用程序的清单文件
- sql - 如何将where子句中的值与ID的最大值进行比较?
- java - 编辑:如何发送带有参数和表单数据的帖子请求,如 JAVA 中的邮递员截图?
- python - 使用 pandas 中其他两列的值从分类变量中创建列
- rust - 我的 Rust 代码比等效的 Python 代码长得多,结果错误