Numpy掩碼式數(shù)組詳解
數(shù)據(jù)很大形況下是凌亂的,并且含有空白的或者無法處理的字符,掩碼式數(shù)組可以很好的忽略殘缺的或者是無效的數(shù)據(jù)點。掩碼式數(shù)組由一個正常數(shù)組與一個布爾式數(shù)組組成,若布爾數(shù)組中為Ture,則表示正常數(shù)組中對應下標的值無效,反之False表示對應正常數(shù)組的值有效。
創(chuàng)建方法為,首先創(chuàng)建一個布爾型數(shù)組,然后通過numpy.ma子程序包提供的函數(shù)來創(chuàng)建掩碼式數(shù)組,掩碼式數(shù)組提供了各種所需函數(shù)。
創(chuàng)建實例如下:
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)的整數(shù)的4×4矩陣 mask_array = np.ma.array(origin,mask=random_mask)#生成掩碼式矩陣 print(mask_array)
結(jié)果如下:
[[12 13 -- 15] [8 9 10 --] [-- -- -- 3] [-- 5 6 --]]
用于:
1.對負數(shù)取對數(shù)
import numpy as np triples = np.arange(0,10,3)#每隔3取0到10中的整數(shù),(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)#掩碼式取對數(shù) print(ma_log)
結(jié)果為:
[-- 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掩碼式數(shù)組詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python基于回溯法子集樹模板解決數(shù)字組合問題實例
這篇文章主要介紹了Python基于回溯法子集樹模板解決數(shù)字組合問題,簡單描述了數(shù)字組合問題并結(jié)合實例形式分析了Python回溯法子集樹模板解決數(shù)字組合問題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Python接口自動化淺析如何處理動態(tài)數(shù)據(jù)
本文是python接口自動化系列文章,主要介紹了接口自動化過程中,動態(tài)數(shù)據(jù)如何生成、動態(tài)數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)進行對比并替換,有需要的朋友可以參考下2021-08-08Python使用signal定時結(jié)束AsyncIOScheduler任務的問題
這篇文章主要介紹了Python使用signal定時結(jié)束AsyncIOScheduler任務,在使用aiohttp結(jié)合apscheduler的AsyncIOScheduler模擬定點并發(fā)的時候遇到兩個問題,針對每個問題給大家詳細介紹,需要的朋友可以參考下2021-07-07