python给矩阵赋值_python – Numpy:如何为多维数组的各个元素赋值?

这篇博客讨论了在Python中使用Numpy库为三维数组(代表RGB值)的G通道低于5的像素赋值的问题。作者尝试了几种不同的方法,包括使用`np.where`和切片操作,但没有达到预期效果。最终目标是将G通道小于5的像素值更改为9。博客寻求关于如何正确实现这一操作的解答。
摘要由CSDN通过智能技术生成

我正在使用三维数组(出于本示例的目的,您可以想象它们代表屏幕的X,Y坐标处的RGB值).

>>> import numpy as np

>>> a = np.floor(10 * np.random.random((2, 2, 3)))

>>> a

array([[[ 7., 3., 1.],

[ 9., 6., 9.]],

[[ 4., 6., 8.],

[ 8., 1., 1.]]])

我想做的是,为那些G通道已经低于5的像素设置G通道的任意值.我可以设法隔离我感兴趣的像素:

>>> a[np.where(a[:, :, 1] < 5)]

array([[ 7., 3., 1.],

[ 8., 1., 1.]])

但我很难理解如何仅为G通道分配新值.我试过了:

>>> a[np.where(a[:, :, 1] < 5)][1] = 9

>>> a

array([[[ 7., 3., 1.],

[ 9., 6., 9.]],

[[ 4., 6., 8.],

[ 8., 1., 1.]]])

……但似乎没有产生任何影响.我也尝试过:

>>> a[np.where(a[:, :, 1] < 5), 1] = 9

>>> a

array([[[ 7., 3., 1.],

[ 9., 9., 9.]],

[[ 4., 6., 8.],

[ 9., 9., 9.]]])

……(未能理解发生了什么)最后我试过:

>>> a[np.where(a[:, :, 1] < 5)][:, 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值