Python Numpy阵列-替换元素
我是numpy新手,我想替换3D numpy阵列中的specefic元素。我的3D numpy数组表示一个图像。阵列的形状为: (1080, 1920, 3). 数字3表示图像中每个像素的RGB 我只想知道如何将所有等于[0,0,0]的元素改为[255255] 这意味着我希望图像中的所有黑色像素都是白色。。我怎么做?Python Numpy阵列-替换元素,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我是numpy新手,我想替换3D numpy阵列中的specefic元素。我的3D numpy数组表示一个图像。阵列的形状为: (1080, 1920, 3). 数字3表示图像中每个像素的RGB 我只想知道如何将所有等于[0,0,0]的元素改为[255255] 这意味着我希望图像中的所有黑色像素都是白色。。我怎么做? 谢谢 假设您已将数组存储在数据中;这应该起作用: data[(data == 0).all(axis=2)] = [255, 255, 255] 这是由于numpy的广播规则将每
谢谢 假设您已将数组存储在
数据中
;这应该起作用:
data[(data == 0).all(axis=2)] = [255, 255, 255]
这是由于numpy
的广播规则将每个值与0进行比较,从而生成一个布尔数组,其中True
值与其他地方的False
值进行比较
下一步是只取所有单个值比较相等的子数组,使用.all(axis=2)
-最后一个轴,即您想要的轴
然后,使用生成的布尔数组,您可以索引回数据
,这将只提供那些等于[0,0,0]
的子数组,并将它们设置为[255,255,255]