新聞中心
有的小伙伴對(duì)numpy如何生成mask圖像產(chǎn)生了疑問,今天就這個(gè)問題為大家進(jìn)行解答。

創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)10多年來致力于為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、成都品牌網(wǎng)站建設(shè)、成都全網(wǎng)營銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了1000+網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
在numpy中,有一個(gè)模塊叫做ma,這個(gè)模塊幾乎復(fù)制了numpy里面的所有函數(shù),當(dāng)然底層里面都換成了對(duì)自己定義的新的數(shù)據(jù)類型MaskedArray的操作。
我們來看最基本的array定義。
An array class with possibly masked values. Masked values of True exclude the corresponding element from any computation.
MaskedArray是一個(gè)可能帶有掩膜信息的數(shù)組,對(duì)于它的任何計(jì)算都是只針對(duì)掩膜值為True的數(shù)值上的。
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)
這個(gè)class的屬性有很多,但是呢,我們只需要關(guān)注三個(gè)屬性就好了,也就是data,mask和fill_value。其他的屬性很難用到,舉個(gè)例子,比如那個(gè)hard_mask,這個(gè)屬性為True就是指data一旦某些值被掩蓋掉了就真的丟失了。詳細(xì)的可以看源碼注解。這里不過多介紹。
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就不多說了,一個(gè)array_like,tuple,list,ndarray都行。
mask是一個(gè)只包含True和False的ndarray,它的shape和data一致,這個(gè)數(shù)組是讓你指定需要掩蓋的值的,標(biāo)記為True的數(shù)據(jù)會(huì)被掩蓋掉。被掩蓋的位置會(huì)變成 –(這是兩個(gè)短橫杠,類型是MaskedConstant )
fill_value是一個(gè)標(biāo)量,當(dāng)你掩蓋掉一些值之后,如果你想把這些被掩蓋的值換成另外一個(gè)值,那么你就需要用到它。
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也可以直接對(duì)ndarray進(jìn)行條件運(yùn)算。
import numpy as np arr = np.random.randint(1, 10, size=[1, 5, 5]) mask = arr<5 arr[mask] = 0 # 把標(biāo)記為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]]]
以上就是全部numpy生成mask圖像的詳解,更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
新聞名稱:創(chuàng)新互聯(lián)Python教程:Python中numpy如何生成mask圖像
標(biāo)題鏈接:http://fisionsoft.com.cn/article/dhesjgp.html


咨詢
建站咨詢
