numpy在使用where函数时添加多个条件

问题提出

今天上午在处理医学图像时,想要从标签图中提取出两个不同的部位,每个部位都用不同的值标识着(比如上软骨用1标识,下软骨用4标识)

之前提取一个部位时只需要使用im[im != 1] = 0这样就可以把除上软骨的部位标记为0了,但是现在想要提取出两个部位,所以要使用多个条件,所以接下来看一看如何添加多个条件吧。

前置知识

对于python代码im[im != 1],筛选条件返回的数组大小和原数组大小一致,只不过符合条件的位置为True标识,不符合条件的位置用False标识。

使用多个条件进行筛选

  • 两个条件必须先使用括号括起来
  • 与关系用&,或关系用 |
  • 除了之间使用下标外,还可以用np.logical_and()或者np.logical_or()函数

示例

# 将im中值为2或4的位置进行保留,其余位置元素全置为零
# 这里使用与关系的原因在于,一个元素只有既不是2也不是4时就会被置为0(当为2或4时该值为True,只有两个筛选条件都是False时才证明该元素应该为背景)
im[(im != 4) & (im != 2)] = 0

参考链接

下面这个链接有多筛选条件在np.where()中的具体使用,大家可以看一下~
numpy.where() 多个条件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值