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中用get()方法获取字典键值的教程
May 21 Python
Python中super的用法实例
May 28 Python
Python Property属性的2种用法
Jun 21 Python
PyQt5每天必学之事件与信号
Apr 20 Python
python3安装speech语音模块的方法
Dec 24 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
基于Python的OCR实现示例
Apr 03 Python
Python中qutip用法示例详解
Oct 02 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 Python
python语言实现贪吃蛇游戏
Nov 13 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遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
Bootstrap基础学习
2015/06/16 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
python实现dijkstra最短路由算法
2019/01/17 Python
20行python代码实现人脸识别
2019/05/05 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
项目合作意向书范本
2014/04/01 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
活动费用申请报告
2015/05/15 职场文书
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
mysql 获取相邻数据项
2022/05/11 MySQL