網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
numpy中有一個(gè)掩碼數(shù)組的概念,需要通過(guò)子模塊numpy.ma來(lái)創(chuàng)建,基本的創(chuàng)建方式如下
>>> import numpy as np
>>> import numpy.ma as ma
>>> a = np.arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> b = ma.masked_array(a, mask = [1, 1, 1, 0, 0])
>>> b
masked_array(data = [-- -- -- 3 4],
mask = [ True True True False False],
fill_value = 999999)
>>> np.min(a)
0
>>> np.min(b)
3
所謂掩碼,就是掩蓋的意思。上述代碼中,掩藏了數(shù)組的前3個(gè)元素,形成了一個(gè)新的掩碼數(shù)組,在該掩碼數(shù)組中,被掩藏的前3位用短橫杠表示,對(duì)原始數(shù)組和對(duì)應(yīng)的掩碼數(shù)組同時(shí)求最小值,可以看到,掩碼數(shù)組中只有未被掩藏的元素參與了計(jì)算。
掩碼數(shù)組賦予了我們重新選擇元素的權(quán)利,而不用改變矩陣的維度。在可視化領(lǐng)域,最典型的應(yīng)用就是繪制三角熱圖,代碼如下
import matplotlib.pyplot as plt
import numpy as np
import numpy.ma ?as ma
data = np.random.rand(25 * 25).reshape(25, -1)
mask = np.tri(data.shape[0], k= -1)
data_masked = ma.array(data, mask=mask)
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(data)
ax2.imshow(data_masked)
輸出結(jié)果如下
通過(guò)掩碼矩陣,可以輕松實(shí)現(xiàn)三角熱圖的繪制。在numpy.ma子模塊中,還提供了多種創(chuàng)建掩碼數(shù)組的方式,用法如下
>>> import numpy.ma as ma
>>> a
array([0, 1, 2, 3, 4])
# 等于2的元素被掩蓋
>>> ma.masked_equal(a, 2)
masked_array(data = [0 1 -- 3 4],
? ? ? ? ? ? ?mask = [False False ?True False False],
? ? ? ?fill_value = 2)
# 不等于2的元素被掩蓋
>>> ma.masked_not_equal(a, 2)
masked_array(data = [-- -- 2 -- --],
? ? ? ? ? ? ?mask = [ True ?True False ?True ?True],
? ? ? ?fill_value = 999999)
# 大于2的元素被掩蓋
>>> ma.masked_greater(a, 2)
masked_array(data = [0 1 2 -- --],
? ? ? ? ? ? ?mask = [False False False ?True ?True],
? ? ? ?fill_value = 999999)
# 小于2的元素被掩蓋
>>> ma.masked_less(a, 2)
masked_array(data = [-- -- 2 3 4],
? ? ? ? ? ? ?mask = [ True ?True False False False],
? ? ? ?fill_value = 999999)
# 大于等于2的元素被掩蓋
>>> ma.masked_greater_equal(a, 2)
masked_array(data = [0 1 -- -- --],
? ? ? ? ? ? ?mask = [False False ?True ?True ?True],
? ? ? ?fill_value = 999999)
# 小于等于2的元素被掩蓋
>>> ma.masked_less_equal(a, 2)
masked_array(data = [-- -- -- 3 4],
? ? ? ? ? ? ?mask = [ True ?True ?True False False],
? ? ? ?fill_value = 999999)
# 小于1大于3的元素被掩蓋
>>> ma.masked_outside(a, 1, 3)
masked_array(data=[--, 1, 2, 3, --],
? ? ? ? ? ? ?mask=[ True, False, False, False, True],
? ? ? ?fill_value=999999)
# 大于等于1,小于等于3的元素被掩蓋
>>> ma.masked_inside(a, 1, 3)
masked_array(data=[0, --, --, --, 4],
? ? ? ? ? ? ?mask=[False, True, True, True, False],
? ? ? ?fill_value=999999)
利用掩碼數(shù)組,可以方便的處理缺失值或者被污染的值,只需要將對(duì)應(yīng)的元素掩碼即可,更多的用法請(qǐng)查閱官方的API文檔。
原文鏈接:https://cloud.tencent.com/developer/article/1641455
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2023-07-16 uni-app 自定義組件之星級(jí)評(píng)價(jià)分?jǐn)?shù)
- 2022-11-10 C語(yǔ)言枚舉與聯(lián)合體深入詳解_C 語(yǔ)言
- 2023-11-21 python使用print輸出不同顏色的字體、終端顯示不同顏色字體
- 2022-07-04 C#?WinForm制作登錄界面的實(shí)現(xiàn)步驟_C#教程
- 2023-07-08 QMessageBox顯示中文為亂碼
- 2022-06-01 C#枚舉的高級(jí)應(yīng)用_基礎(chǔ)應(yīng)用
- 2022-09-18 C++?STL反向迭代器的實(shí)現(xiàn)_C 語(yǔ)言
- 2023-04-27 React中state屬性和生命周期的使用_React
- 欄目分類(lèi)
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支