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多进程共享变量
Apr 06 Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
Python中的 enum 模块源码详析
Jan 09 Python
Python3 修改默认环境的方法
Feb 16 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
python 异步async库的使用说明
May 04 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 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代码优化及php相关问题总结
2006/10/09 PHP
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
javascript 学习之旅 (2)
2009/02/05 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
javascript表单正则应用
2017/02/04 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[02:27]刀塔重生降临
2015/10/14 DOTA
跟老齐学Python之for循环语句
2014/10/02 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
python中字符串的编码与解码详析
2020/12/03 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
社区道德讲堂实施方案
2014/03/21 职场文书
竞聘演讲稿
2014/04/24 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang