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中使用dom模块生成XML文件示例
Apr 05 Python
理解python正则表达式
Jan 15 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Python代码缩进和测试模块示例详解
May 07 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
使用python模拟高斯分布例子
Dec 09 Python
python3.6中anaconda安装sklearn踩坑实录
Jul 28 Python
使用python实现学生信息管理系统
Feb 25 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 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
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
jQuery 表格工具集
2010/04/25 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python binascii 进制转换实例
2019/06/12 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
运动会致辞稿50字
2014/02/04 职场文书
2014学年自我鉴定
2014/02/23 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
社区敬老月活动总结
2015/05/07 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
新闻通讯稿范文
2015/07/22 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis