知行编程网知行编程网  2022-09-21 05:30 知行编程网 隐藏边栏  150 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中numpy如何生成mask图像的相关知识,包括python生成随机数列表,以及函数图像生成器在线使用这些编程知识,希望对大家有参考作用。

有朋友对numpy如何生成mask图片有疑问。今天,小编就为大家解答这个问题。

在numpy中,有一个模块叫ma。这个模块几乎复制了 numpy 中的所有函数。当然,底层被自己定义的新数据类型 MaskedArray 的操作所取代。


我们来看最基本的

array

定义。

<p><span>An array class with possibly masked values.
Masked values of True exclude the corresponding element from any computation.<br/></span></p>


MaskedArray是一个可能带有

掩膜信息的数组

,对于它的任何计算都是只针对掩膜值为True的数值上的。

<p><span>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)<br/></span></p>


这个class的属性有很多,但是呢,我们只需要关注三个属性就好了,也就是

data,mask和fill_value

。其他的属性很难用到,举个例子,比如那个hard_mask,这个属性为True就是指data一旦某些值被掩盖掉了就真的丢失了。详细的可以看源码注解。这里不过多介绍。

<p><span>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.<br/></span></p>


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


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

这是两个短横杠,类型是MaskedConstant


fill_value 是一个标量,如果你想在屏蔽掉一些值后用另一个值替换被屏蔽的值,你需要使用它。

<p><span>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 --]]]<br/></span></p>


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

<p><span>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]]]<br/></span></p>


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



本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享