Python Numpy,mask图像的生成详解
什么是掩膜(mask)
在numpy中,有一个模块叫做ma,这个模块几乎复制了numpy里面的所有函数,当然底层里面都换成了对自己定义的新的数据类型MaskedArray的操作。
我们来看最基本的array定义。
Anarrayclasswithpossiblymaskedvalues. MaskedvaluesofTrueexcludethecorrespondingelementfromanycomputation.
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 Inputdata. mask:sequence,optional Mask.Mustbeconvertibletoanarrayofbooleanswiththesame shapeas`data`.Trueindicatesamasked(i.e.invalid)data. fill_value:scalar,optional Valueusedtofillinthemaskedvalueswhennecessary. IfNone,adefaultbasedonthedata-typeisused.
data就不多说了,一个array_like,tuple,list,ndarray都行。
mask是一个只包含True和False的ndarray,它的shape和data一致,这个数组是让你指定需要掩盖的值的,标记为True的数据会被掩盖掉。被掩盖的位置会变成–(这是两个短横杠,类型是MaskedConstant)
fill_value是一个标量,当你掩盖掉一些值之后,如果你想把这些被掩盖的值换成另外一个值,那么你就需要用到它。
importnumpy.maasnpm importnumpyasnp data=np.random.randint(1,10,size=[1,5,5]) mask=data<5 arr=npm.array(data,mask=mask) print(arr) #[[[66--8--] #[------67] #[9----69] #[----5--8] #[69--5--]]]
不过numpy也可以直接对ndarray进行条件运算。
importnumpyasnp arr=np.random.randint(1,10,size=[1,5,5]) mask=arr<5 arr[mask]=0#把标记为True的值记为0 print(arr) #[[[99760] #[00690] #[80850] #[05589] #[07006]]]
以上这篇PythonNumpy,mask图像的生成详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。