Numpy掩码式数组详解


Posted in Python onApril 17, 2018

数据很大形况下是凌乱的,并且含有空白的或者无法处理的字符,掩码式数组可以很好的忽略残缺的或者是无效的数据点。掩码式数组由一个正常数组与一个布尔式数组组成,若布尔数组中为Ture,则表示正常数组中对应下标的值无效,反之False表示对应正常数组的值有效。

创建方法为,首先创建一个布尔型数组,然后通过numpy.ma子程序包提供的函数来创建掩码式数组,掩码式数组提供了各种所需函数。

创建实例如下:

import numpy as np
origin = np.arange(16).reshape(4,4)  #生成一个4×4的矩阵
np.random.shuffle(origin)     #随机打乱矩阵元素
random_mask = np.random.randint(0,2,size=origin.shape)#生成随机[0,2)的整数的4×4矩阵
mask_array = np.ma.array(origin,mask=random_mask)#生成掩码式矩阵
print(mask_array)

结果如下:

[[12 13 -- 15]
 [8 9 10 --]
 [-- -- -- 3]
 [-- 5 6 --]]

用于:

1.对负数取对数

import numpy as np
triples = np.arange(0,10,3)#每隔3取0到10中的整数,(0,3,6,9)
signs = np.ones(10)#(1,1,1,1,1,1,1,1,1)
signs[triples] = -1#(-1,1,1,-1,1,1,-1,1,1,-1)
values = signs * 77#(-77,77,77,-77,77,77,-77,77,77,-77)
ma_log = np.ma.log(values)#掩码式取对数
print(ma_log)

结果为:

[-- 4.343805421853684 4.343805421853684 -- 4.343805421853684
 4.343805421853684 -- 4.343805421853684 4.343805421853684 --]

2.忽略极值

import numpy as np
inside = np.ma.masked_outside(array,min,max)

以上这篇Numpy掩码式数组详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
python2.7实现FTP文件下载功能
Apr 15 Python
使用pip安装python库的多种方式
Jul 31 Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
django框架cookie和session用法实例详解
Dec 10 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
python实现图像拼接功能
Mar 23 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
对numpy中布尔型数组的处理方法详解
Apr 17 #Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 #Python
python3库numpy数组属性的查看方法
Apr 17 #Python
对python中的for循环和range内置函数详解
Apr 17 #Python
Numpy数组转置的两种实现方法
Apr 17 #Python
详解Django之auth模块(用户认证)
Apr 17 #Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 #Python
You might like
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
php实现图片缩放功能类
2013/12/18 PHP
php中file_exists函数使用详解
2015/05/08 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
Python用threading实现多线程详解
2017/02/03 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
团日活动总结报告
2014/06/25 职场文书
捐助感谢信
2015/01/22 职场文书
房产电话营销开场白
2015/05/29 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript