網(wǎng)站首頁 編程語言 正文
numpy中有一個(gè)掩碼數(shù)組的概念,需要通過子模塊numpy.ma來創(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位用短橫杠表示,對原始數(shù)組和對應(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é)果如下
通過掩碼矩陣,可以輕松實(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ù)組,可以方便的處理缺失值或者被污染的值,只需要將對應(yīng)的元素掩碼即可,更多的用法請查閱官方的API文檔。
原文鏈接:https://cloud.tencent.com/developer/article/1641455
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-06-01 SQL為什么不建議執(zhí)行超過3表以上的多表關(guān)聯(lián)查詢_MsSql
- 2023-07-14 express+element實(shí)現(xiàn)上傳圖片
- 2022-05-15 一起來學(xué)習(xí)Python的元組和列表_python
- 2022-04-16 C語言數(shù)據(jù)結(jié)構(gòu)之二分法查找詳解_C 語言
- 2023-04-02 GoLang中的timer定時(shí)器實(shí)現(xiàn)原理分析_Golang
- 2022-10-23 使用React組件編寫溫度顯示器_React
- 2022-05-11 在 Markdown 中,如何在反引號對語句中使用反引號
- 2022-04-07 你知道怎么基于?React?封裝一個(gè)組件嗎_React
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- 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)證過濾器
- Spring Security概述快速入門
- 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)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支