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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
在Python中操作文件之seek()方法的使用教程
May 24 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
python中如何使用分步式进程计算详解
Mar 22 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
python pygame实现挡板弹球游戏
Nov 25 Python
python标识符命名规范原理解析
Jan 10 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
基于python 凸包问题的解决
Apr 16 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php简单的会话类代码
2011/08/08 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
初识JQuery 实例一(first)
2011/03/16 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
js字符串转成JSON
2013/11/07 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
介绍Python中的文档测试模块
2015/04/28 Python
图解Python变量与赋值
2018/04/03 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
python获取array中指定元素的示例
2019/11/26 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
Python新手学习raise用法
2020/06/03 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
自荐信怎么写呢?
2013/12/09 职场文书
商场消防管理制度
2014/01/12 职场文书
向女朋友道歉的话
2015/01/20 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
如何用Python搭建gRPC服务
2021/06/30 Python
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python