无法修改 numpy 数组
Can't modify numpy array
我在 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
有时,如果您尝试将写入标志设置为 True,您会收到如下错误。
ValueError: cannot set WRITEABLE flag to True of this array
只需复制它即可工作。它很有用,而不是降级 numpy
版本
photo = photo_data.copy()
print(type(photo))
photo[0,0,1] = 0
plt.imshow(photo_data)
我在 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
有时,如果您尝试将写入标志设置为 True,您会收到如下错误。
ValueError: cannot set WRITEABLE flag to True of this array
只需复制它即可工作。它很有用,而不是降级 numpy
版本
photo = photo_data.copy()
print(type(photo))
photo[0,0,1] = 0
plt.imshow(photo_data)