Python Numpy,mask图像的生成详解

 更新时间:2020年02月19日 08:50:10   作者:GZHermit  
今天小编就为大家分享一篇Python Numpy,mask图像的生成详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

什么是掩膜(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实现简单的"导弹" 自动追踪原理解析

    这篇文章主要介绍了Python实现简单的"导弹" 自动追踪原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Django搭建MySQL主从实现读写分离

    Django搭建MySQL主从实现读写分离

    本文主要介绍了Django搭建MySQL主从实现读写分离,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 从numpy数组中取出满足条件的元素示例

    从numpy数组中取出满足条件的元素示例

    今天小编就为大家分享一篇从numpy数组中取出满足条件的元素示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python在控制台输出进度条的方法

    python在控制台输出进度条的方法

    这篇文章主要介绍了python在控制台输出进度条的方法,实例分析了Python输出进度条效果的方法,需要的朋友可以参考下
    2015-06-06
  • Python3 Loguru输出日志工具的使用

    Python3 Loguru输出日志工具的使用

    使用 Python 来写程序或者脚本的话,常常遇到的问题就是需要对日志进行删除。一方面可以帮助我们在程序出问题的时候排除问题,二来可以帮助我们记录需要关注的信息,这篇文章主要介绍了Python3 Loguru 相见恨晚的输出日志工具,需要的朋友可以参考下
    2022-05-05
  • 在jupyter notebook中使用pytorch的方法

    在jupyter notebook中使用pytorch的方法

    这篇文章主要介绍了在jupyter notebook中使用pytorch的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • 浅谈python中的@以及@在tensorflow中的作用说明

    浅谈python中的@以及@在tensorflow中的作用说明

    这篇文章主要介绍了浅谈python中的@以及@在tensorflow中的作用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Tensorflow实现将标签变为one-hot形式

    Tensorflow实现将标签变为one-hot形式

    这篇文章主要介绍了Tensorflow实现将标签变为one-hot形式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • numpy中tensordot的用法

    numpy中tensordot的用法

    本文主要介绍了numpy中tensordot的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python稀疏矩阵及参数保存代码实现

    Python稀疏矩阵及参数保存代码实现

    这篇文章主要介绍了Python稀疏矩阵及参数保存代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论