用numpy条件放置值

时间:2016-07-29 13:08:09

标签: python numpy

我有一个三通道矩阵,我想放置小于27的值

a=numpy.arange(27).reshape(3,3,3)
a[a<27]=0

但是,如果我只想在第一个频道上替换,我可以做的就是写一个for循环

for i in range(3):
    for j in range(3):
        if a[i][j][0] < 27:
            a[i][j][0]=0

我不确定如何以更简单的方式做到这一点。

谢谢

2 个答案:

答案 0 :(得分:2)

您可以尝试:

a=numpy.arange(27).reshape(3,3,3)
a[a[:,:,0]<27, 0]=0

答案 1 :(得分:1)

我想,您正在寻找:a[:,:,0][a[:,:,0]<27]=0