6.5 建立一個masked型別的陣列
Masked型別的陣列(Masked陣列)可用來遮蔽資料集中的缺失值和無效值。numpy.ma模組中的MaskedArray
類包含一個遮蔽碼(mask)陣列,而且是ndarray
的子類。在本攻略中,我們把影像Lena作為資料來源,並且假設影像中的某些資料已被損毀。最後將繪製原始影像、原始影像的對數值、Masked型別的陣列及其對數值。
6.5.1 具體步驟
讓我們開始建立Masked型別的陣列。
建立遮蔽碼陣列。
為了建立Masked型別的陣列,需要先指定一個遮蔽碼陣列。隨機生成一個遮蔽碼陣列,陣列元素的取值是0或1的一個隨機數。1
random_mask = numpy.random.randint (0, 2, size=lena.shape)
1. 遮蔽碼陣列是一個布林陣列,因此只需要生成0和1兩個隨機數,分別代表False和True。——譯者注
建立Masked型別的陣列。
使用上一步得到的遮蔽碼陣列,建立Masked型別的陣列。
masked_array = numpy.ma.array (lena, mask=random_mask)
本攻略的完整程式碼如下。
import numpy
import scipy.misc
import matplotlib.pyplot
lena = scipy.misc.lena()
random_mask = numpy.random.randint(0, 2, size=lena.shape)
matplotlib.pyplot.subplot(221)
matplotlib.pyplot.title("Original")
matplotlib.pyplot.imshow(lena)
matplotlib.pyplot.axis('off')
masked_array = numpy.ma.array(lena, mask=random_mask)
print masked_array
matplotlib.pyplot.subplot(222)
matplotlib.pyplot.title("Masked")
matplotlib.pyplot.imshow(masked_array)
matplotlib.pyplot.axis('off')
matplotlib.pyplot.subplot(223)
matplotlib.pyplot.title("Log")
matplotlib.pyplot.imshow(numpy.log(lena))
matplotlib.pyplot.axis('off')
matplotlib.pyplot.subplot(224)
matplotlib.pyplot.title("Log Masked")
matplotlib.pyplot.imshow(numpy.log(masked_array))
matplotlib.pyplot.axis('off')
matplotlib.pyplot.show()
最終生成的影像如下。
6.5.2 攻略小結
我們把隨機生成的遮蔽碼陣列應用到了一個NumPy陣列上。這樣做的效果是,如果某個陣列元素在遮蔽碼陣列中對應元素的取值為True,則該陣列元素在後續處理中將被忽略。在numpy.ma模組中,有一系列完整的針對Masked陣列的操作。本攻略只展示了怎樣建立一個Masked型別的陣列。
相關文章
- TypeScript 陣列型別TypeScript陣列型別
- js陣列型別JS陣列型別
- TypeScript中,如何利用陣列生成一個聯合型別TypeScript陣列型別
- ArrayBuffer:型別化陣列型別陣列
- 陣列型別轉換陣列型別
- Numpy學習-Task01-資料型別&陣列建立資料型別陣列
- 找一個陣列中特別的數陣列
- 通過一個例項重新認識引用型別,值型別,陣列,堆疊,ref型別陣列
- Numpy庫(一)- 陣列的建立陣列
- js建立陣列的三個方式JS陣列
- 陣列004 動態建立一維陣列陣列
- 陣列1——求一個陣列的最大子陣列陣列
- 介紹PostgreSQL的陣列型別FUSQL陣列型別
- js學習一陣列型別foreach方法JS陣列型別
- 建立包含N個空物件的陣列物件陣列
- C# 一維陣列如何快速實現陣列元素的資料型別的轉換?C#陣列資料型別
- js如何建立一個具有可變數量的陣列JS變數陣列
- 物件陣列與一般陣列的區別物件陣列
- 如何將一個陣列中的元素插入另一個陣列陣列
- php資料型別之陣列PHP資料型別陣列
- PostgreSQL 陣列型別使用詳解SQL陣列型別
- java基礎(十) 陣列型別Java陣列型別
- javascript型別系統——陣列arrayJavaScript型別陣列
- c語言中陣列的三種型別C語言陣列型別
- 將一個陣列賦值給另外一個陣列陣列賦值
- NumPy 基礎 (一) - 建立陣列陣列
- JNI/NDK開發指南(5):訪問陣列(基本型別陣列與物件陣列)陣列型別物件
- 建立X個任意元素陣列並且可以遍歷的的一個方法陣列
- 6.5陣列--模擬、偏移量-螺旋矩陣陣列矩陣
- 陣列(引用型別)複製問題陣列型別
- java之資料型別與陣列Java資料型別陣列
- javascript將陣列的元素每兩個一組存入一個新陣列JavaScript陣列
- 克隆一個陣列的方法陣列
- 陣列的建立___MATLAB陣列Matlab
- 建立一個MySQL資料庫中的datetime型別MySql資料庫型別
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列
- sizeof和strlen計算陣列型別和指標型別字串陣列型別指標字串
- 兩個陣列分別取出一個來相加,找出和最小的k個陣列