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中的sort方法使用详解
Jul 25 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
python2.7安装图文教程
Mar 13 Python
Python socket实现简单聊天室
Apr 01 Python
Python走楼梯问题解决方法示例
Jul 25 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
Python中一些深不见底的“坑”
Jun 12 Python
Django框架安装方法图文详解
Nov 04 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
python中实现栈的三种方法
Dec 19 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
Python自动化爬取天眼查数据的实现
Jun 15 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
使用PHPMailer发送邮件实例
2017/02/15 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
详解Python字典小结
2018/10/20 Python
python游戏地图最短路径求解
2019/01/16 Python
Python 切分数组实例解析
2019/11/07 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
幼儿园教师工作制度
2014/01/22 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
中等生评语大全
2014/05/04 职场文书
大学生找工作求职信
2014/07/09 职场文书
上课说话检讨书500字
2014/11/01 职场文书
用人单位聘用意向书
2015/05/11 职场文书
初中班主任教育随笔
2015/08/15 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang