python - 无法修改 numpy 数组

标签 python numpy matplotlib numpy-ndarray

我在 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

我正在学习此代码似乎可以正常工作的在线类(class),你能告诉我我哪里出错了吗?

最佳答案

目前的问题是该数组由 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

关于python - 无法修改 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53971620/

相关文章:

python - 用模式填充条形图

python - 如何在 matplotlib python 中设置确切的日期刻度

python - seaborn/matplotlib 更改图例对象中的列数

python - 自定义 404 模板上的额外变量

Python - GUI2EXE - 属性错误 : 'module' object has no attribute 'Popen'

python-3.x - Python从两个具有相同长度的列表中获取唯一值和最小值对

python - 在 Python 中创建快速 RGB 查找表

python - 如何使用正则表达式将字符串中的 2.5k 数字格式化为 2.5e3

python - 将 python 对象上传到 Google Cloud Storage 而不将其保存到文件

python - 从一系列图像中找出最大的 x,y 值