Python Numpy,mask图像的生成详解


Posted in Python onFebruary 19, 2020

什么是掩膜(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]]]

以上这篇Python Numpy, mask图像的生成详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中集合类型(set)学习小结
Jan 28 Python
基于Python实现对PDF文件的OCR识别
Aug 05 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
python异步编程 使用yield from过程解析
Sep 25 Python
Python中的With语句的使用及原理
Jul 29 Python
python中sys模块是做什么用的
Aug 16 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 #Python
Python中logging日志库实例详解
Feb 19 #Python
在Python中通过threshold创建mask方式
Feb 19 #Python
python实现简单颜色识别程序
Feb 19 #Python
python绘制封闭多边形教程
Feb 18 #Python
python Shapely使用指南详解
Feb 18 #Python
Python模拟FTP文件服务器的操作方法
Feb 18 #Python
You might like
php中的curl_multi系列函数使用例子
2014/07/29 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
FF IE兼容性的修改小结
2009/09/02 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
JS date对象的减法处理实现代码
2010/12/28 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
python中的错误如何查看
2020/07/08 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
服务员岗位职责范本
2015/04/09 职场文书
小学生安全保证书
2015/05/09 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫