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通过select实现异步IO的方法
Jun 04 Python
详解Swift中属性的声明与作用
Jun 30 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
Python 一句话生成字母表的方法
Jan 02 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
python实现126邮箱发送邮件
May 20 Python
Python echarts实现数据可视化实例详解
Mar 03 Python
pytorch实现加载保存查看checkpoint文件
Jul 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
php图片添加水印例子
2016/07/20 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
js实现无缝滚动图
2017/02/22 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
vuex实现购物车功能
2020/06/28 Javascript
从Python程序中访问Java类的简单示例
2015/04/20 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
python中的时区问题
2021/01/14 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
信息管理专业推荐信
2013/10/29 职场文书
计算机专业毕业生的自我评价
2013/11/18 职场文书
英文邀请函
2015/02/02 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
功夫熊猫观后感
2015/06/10 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers