python怎么生成图像_Python中numpy如何生成mask图像

有的小伙伴对numpy如何生成mask图像产生了疑问,今天就这个问题为大家进行解答。

在numpy中,有一个模块叫做ma,这个模块几乎复制了numpy里面的所有函数,当然底层里面都换成了对自己定义的新的数据类型MaskedArray的操作。

我们来看最基本的array定义。An array class with possibly masked values.

Masked values of True exclude the corresponding element from any computation.

MaskedArray是一个可能带有掩膜信息的数组,对于它的任何计算都是只针对掩膜值为True的数值上的。Construction::

x = MaskedArray(data, mask=nomask, dtype=None, copy=False, subok=True,

ndmin=0, fill_value=None, keep_mask=True, hard_mask=None,

shrink=True, order=None)

这个class的属性有很多,但是呢,我们只需要关注三个属性就好了,也就是data,mask和fill_value。其他的属性很难用到,举个例子,比如那个hard_mask,这个属性为True就是指data一旦某些值被掩盖掉了就真的丢失了。详细的可以看源码注解。这里不过多介绍。Parameters

----------

data : array_like

Input data.

mask : sequence, optional

Mask. Must be convertible to an array of booleans with the same

shape as `data`. True indicates a masked (i.e. invalid) data.

fill_value : scalar, optional

Value used to fill in the masked values when necessary.

If None, a default based on the data-type is used.

data就不多说了,一个array_like,tuple,list,ndarray都行。

mask是一个只包含True和False的ndarray,它的shape和data一致,这个数组是让你指定需要掩盖的值的,标记为True的数据会被掩盖掉。被掩盖的位置会变成 –(这是两个短横杠,类型是MaskedConstant)

fill_value是一个标量,当你掩盖掉一些值之后,如果你想把这些被掩盖的值换成另外一个值,那么你就需要用到它。import numpy.ma as npm

import numpy as np

data = np.random.randint(1, 10, size=[1, 5, 5])

mask = data < 5

arr = npm.array(data, mask=mask)

print(arr)

#[[[6 6 -- 8 --]

# [-- -- -- 6 7]

# [9 -- -- 6 9]

# [-- -- 5 -- 8]

# [6 9 -- 5 --]]]

不过numpy也可以直接对ndarray进行条件运算。import numpy as np

arr = np.random.randint(1, 10, size=[1, 5, 5])

mask = arr<5

arr[mask] = 0 # 把标记为True的值记为0

print(arr)

#[[[9 9 7 6 0]

# [0 0 6 9 0]

# [8 0 8 5 0]

# [0 5 5 8 9]

# [0 7 0 0 6]]]

以上就是全部numpy生成mask图像的详解,更多Python学习推荐:PyThon学习网教学中心。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值