numpy.ma
模組的常數#
除了 MaskedArray
類別之外,numpy.ma
模組還定義了幾個常數。
- numpy.ma.masked#
masked
常數是MaskedArray
的特例,具有浮點數資料類型和空形狀。它用於測試遮罩陣列的特定條目是否被遮罩,或遮罩遮罩陣列的一個或多個條目>>> import numpy as np >>> x = ma.array([1, 2, 3], mask=[0, 1, 0]) >>> x[1] is ma.masked True >>> x[-1] = ma.masked >>> x masked_array(data=[1, --, --], mask=[False, True, True], fill_value=999999)
- numpy.ma.masked_print_option#
當列印遮罩陣列時,用來代替遺失資料的字串。預設情況下,此字串為
'--'
。使用
set_display()
更改預設字串。範例用法:numpy.ma.masked_print_option.set_display('X')
將遺失的資料替換為'X'
。
MaskedArray
類別#
設計用於操作具有遺失資料的數值陣列的 ndarray
的子類別。
MaskedArray
的實例可以被認為是幾個元素的組合
data
,作為任何形狀或資料類型的常規numpy.ndarray
(資料)。布林值
mask
,其形狀與資料相同,其中True
值表示資料的對應元素無效。特殊值nomask
也適用於沒有命名欄位的陣列,並表示沒有資料是無效的。fill_value
,一個可用於替換無效條目的值,以便返回標準numpy.ndarray
。
遮罩陣列的屬性和特性#
另請參閱
- ma.MaskedArray.data#
以遮罩陣列的視圖形式,傳回底層資料。
如果底層資料是
numpy.ndarray
的子類別,則會按原樣傳回。>>> x = np.ma.array(np.matrix([[1, 2], [3, 4]]), mask=[[0, 1], [1, 0]]) >>> x.data matrix([[1, 2], [3, 4]])
資料的類型可以通過
baseclass
屬性訪問。
- ma.MaskedArray.mask#
目前的遮罩。
- ma.MaskedArray.recordmask#
如果陣列沒有命名欄位,則取得或設定陣列的遮罩。對於結構化陣列,傳回布林值的 ndarray,其中如果 所有 欄位都被遮罩,則條目為
True
,否則為False
>>> x = np.ma.array([(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], ... mask=[(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)], ... dtype=[('a', int), ('b', int)]) >>> x.recordmask array([False, False, True, False, False])
- ma.MaskedArray.fill_value#
遮罩陣列的填充值是純量。設定時,None 將根據資料類型設定為預設值。
範例
>>> import numpy as np >>> for dt in [np.int32, np.int64, np.float64, np.complex128]: ... np.ma.array([0, 1], dtype=dt).get_fill_value() ... np.int64(999999) np.int64(999999) np.float64(1e+20) np.complex128(1e+20+0j)
>>> x = np.ma.array([0, 1.], fill_value=-np.inf) >>> x.fill_value np.float64(-inf) >>> x.fill_value = np.pi >>> x.fill_value np.float64(3.1415926535897931)
重設為預設值
>>> x.fill_value = None >>> x.fill_value np.float64(1e+20)
- ma.MaskedArray.baseclass#
底層資料的類別(唯讀)。
遮罩的共享狀態(唯讀)。
- ma.MaskedArray.hardmask#
指定是否可以通過賦值取消遮罩值。
預設情況下,將明確的值賦值給遮罩陣列條目將取消遮罩它們。當
hardmask
為True
時,遮罩不會通過賦值而改變。範例
>>> import numpy as np >>> x = np.arange(10) >>> m = np.ma.masked_array(x, x>5) >>> assert not m.hardmask
由於 m 具有軟遮罩,因此賦值元素值會取消遮罩該元素
>>> m[8] = 42 >>> m masked_array(data=[0, 1, 2, 3, 4, 5, --, --, 42, --], mask=[False, False, False, False, False, False, True, True, False, True], fill_value=999999)
硬化後,遮罩不受賦值影響
>>> hardened = np.ma.harden_mask(m) >>> assert m.hardmask and hardened is m >>> m[:] = 23 >>> m masked_array(data=[23, 23, 23, 23, 23, 23, --, --, 23, --], mask=[False, False, False, False, False, False, True, True, False, True], fill_value=999999)
由於 MaskedArray
是 ndarray
的子類別,因此遮罩陣列也繼承了 ndarray
實例的所有屬性和特性。
如果記憶體來自其他物件,則為基礎物件。 |
|
一個簡化陣列與 ctypes 模組互動的物件。 |
|
陣列元素的資料類型。 |
|
關於陣列記憶體佈局的資訊。 |
|
一個陣列元素以位元組為單位的長度。 |
|
陣列元素消耗的總位元組數。 |
|
陣列維度的數量。 |
|
陣列維度的元組。 |
|
陣列中的元素數量。 |
|
遍歷陣列時,在每個維度中步進的位元組元組。 |
|
遮罩陣列的虛部。 |
|
遮罩陣列的實部。 |
|
傳回扁平迭代器,或將 self 的扁平版本設定為值。 |
|
MaskedArray
方法#
另請參閱
轉換#
轉換為浮點數。 |
|
轉換為整數。 |
|
|
傳回 MaskedArray 資料的視圖。 |
|
陣列的副本,轉換為指定的類型。 |
|
交換陣列元素的位元組 |
傳回所有未遮罩的資料作為 1-D 陣列。 |
|
|
傳回 self 的副本,其中遮罩值填充給定的值。 |
|
將遮罩陣列以二進制格式儲存到檔案。 |
將遮罩陣列轉換為彈性類型陣列。 |
|
|
將遮罩陣列的資料部分作為階層式 Python 列表傳回。 |
將遮罩陣列轉換為彈性類型陣列。 |
|
|
與 tobytes 的相容性別名,行為完全相同。 |
|
將陣列資料作為包含陣列中原始位元組的字串傳回。 |
形狀操作#
對於 reshape、resize 和 transpose,單個元組參數可以替換為 n
個整數,這些整數將被解釋為 n 元組。
|
傳回折疊成一維的陣列副本。 |
|
以視圖形式傳回 self 的 1D 版本。 |
|
在不更改資料的情況下,為陣列提供新的形狀。 |
|
|
|
從 a 中移除長度為一的軸。 |
|
傳回 axis1 和 axis2 互換的陣列視圖。 |
|
傳回軸轉置的陣列視圖。 |
轉置陣列的視圖。 |
項目選擇和操作#
對於採用 axis
關鍵字的陣列方法,預設為 None。如果 axis 為 None,則陣列被視為 1-D 陣列。 axis
的任何其他值表示操作應沿其進行的維度。
|
傳回給定軸上最大值的索引陣列。 |
|
傳回給定軸上最小值的索引陣列。 |
|
傳回一個 ndarray,其中包含沿指定軸對陣列進行排序的索引。 |
|
使用索引陣列從一組選擇中建構新陣列。 |
|
在 condition 為 |
|
傳回指定的對角線。 |
|
用純量值填充陣列。 |
|
將陣列的元素複製到標準 Python 純量並傳回。 |
傳回未遮罩且非零元素的索引。 |
|
|
將儲存索引的位置設定為對應的值。 |
|
重複陣列的元素。 |
|
尋找應將 v 的元素插入 a 以維持順序的索引。 |
|
就地排序陣列 |
|
沿軸從遮罩陣列中取得元素。 |
Pickling 和複製#
|
傳回陣列的副本。 |
|
將陣列的 pickle 轉儲到指定檔案。 |
將陣列的 pickle 作為字串傳回。 |
計算#
|
如果所有元素評估為 True,則傳回 True。 |
|
計算沿給定軸的異常(與算術平均值的偏差)。 |
|
如果 a 的任何元素評估為 True,則傳回 True。 |
|
傳回一個陣列,其值限制為 |
複共軛所有元素。 |
|
逐元素傳回複共軛。 |
|
|
傳回陣列元素在給定軸上的累積乘積。 |
|
傳回陣列元素在給定軸上的累積總和。 |
|
傳回沿給定軸的最大值。 |
|
傳回陣列元素沿給定軸的平均值。 |
|
傳回沿給定軸的最小值。 |
|
傳回陣列元素在給定軸上的乘積。 |
|
傳回陣列元素在給定軸上的乘積。 |
|
傳回沿給定維度的(最大值 - 最小值)(即峰對峰值)。 |
|
傳回每個元素四捨五入到給定小數位數的值。 |
|
傳回陣列元素沿給定軸的標準差。 |
|
傳回陣列元素在給定軸上的總和。 |
|
傳回沿陣列對角線的總和。 |
|
計算沿指定軸的變異數。 |
算術和比較運算#
比較運算子:#
|
傳回 self<value。 |
|
傳回 self<=value。 |
|
傳回 self>value。 |
|
傳回 self>=value。 |
|
檢查 other 是否逐元素等於 self。 |
|
檢查 other 是否逐元素不等於 self。 |
陣列的真值 (bool()
):#
如果 self 為 True 則為 True,否則為 False |
算術:#
|
|
|
將 self 加到 other,並傳回新的遮罩陣列。 |
|
將 other 加到 self,並傳回新的遮罩陣列。 |
|
從 self 中減去 other,並傳回新的遮罩陣列。 |
|
從 other 中減去 self,並傳回新的遮罩陣列。 |
|
將 self 乘以 other,並傳回新的遮罩陣列。 |
|
將 other 乘以 self,並傳回新的遮罩陣列。 |
|
將 other 除入 self,並傳回新的遮罩陣列。 |
|
將 other 除入 self,並傳回新的遮罩陣列。 |
|
將 self 除入 other,並傳回新的遮罩陣列。 |
|
將 other 除入 self,並傳回新的遮罩陣列。 |
|
將 self 除入 other,並傳回新的遮罩陣列。 |
|
傳回 self%value。 |
|
傳回 value%self。 |
|
傳回 divmod(self, value)。 |
|
傳回 divmod(value, self)。 |
|
將 self 提升為 other 次方,並遮罩潛在的 NaNs/Infs |
|
將 other 提升為 self 次方,並遮罩潛在的 NaNs/Infs |
|
傳回 self<<value。 |
|
傳回 value<<self。 |
|
傳回 self>>value。 |
|
傳回 value>>self。 |
|
傳回 self&value。 |
|
傳回 value&self。 |
|
傳回 self|value。 |
|
傳回 value|self。 |
|
傳回 self^value。 |
|
傳回 value^self。 |
算術,原位運算:#
|
原位將 other 加到 self。 |
|
原位從 self 減去 other。 |
|
原位將 self 乘以 other。 |
|
原位將 self 除以 other。 |
|
原位將 self 真實除以 other。 |
|
原位將 self 向下除以 other 取整數。 |
|
傳回 self%=value。 |
|
原位將 self 提升為 other 次方。 |
|
傳回 self<<=value。 |
|
傳回 self>>=value。 |
|
傳回 self&=value。 |
|
傳回 self|=value。 |
|
傳回 self^=value。 |
表示法#
字面字串表示法。 |
|
傳回 str(self)。 |
|
傳回資料和遮罩區域的位址。 |
|
傳回布林值,指示資料是否為連續的。 |
特殊方法#
適用於標準函式庫函數
當在陣列上呼叫 |
|
|
當在陣列上呼叫 |
傳回遮罩陣列的內部狀態,用於 pickle 序列化。 |
|
傳回一個 3 元組,用於 pickle 序列化 MaskedArray。 |
|
|
還原遮罩陣列的內部狀態,用於 pickle 反序列化。 |
基本客製化
|
從頭開始建立新的遮罩陣列。 |
|
對於 |
|
ufuncs 的特殊掛鉤。 |
容器客製化:(請參閱 索引)
傳回 len(self)。 |
|
|
x.__getitem__(y) <==> x[y] |
|
x.__setitem__(i, y) <==> x[i]=y |
|
刪除 self[key]。 |
|
傳回 key in self。 |
特定方法#
處理遮罩#
以下方法可用於存取關於遮罩的資訊或操作遮罩。
|
設定遮罩。 |
強制遮罩為硬性,防止透過賦值取消遮罩。 |
|
強制遮罩為軟性(預設),允許透過賦值取消遮罩。 |
|
複製遮罩並將 sharedmask 旗標設定為 |
|
在可能的情況下將遮罩縮減為 nomask。 |
處理 fill_value#
遮罩陣列的填充值是一個純量。 |
|
|
計算遺失的元素#
|
沿著給定軸計算陣列中未被遮罩的元素數量。 |