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.nomask#

值,表示遮罩陣列沒有無效條目。nomask 在內部使用,以在不需要遮罩時加速計算。它在內部表示為 np.False_

numpy.ma.masked_print_option#

當列印遮罩陣列時,用來代替遺失資料的字串。預設情況下,此字串為 '--'

使用 set_display() 更改預設字串。範例用法:numpy.ma.masked_print_option.set_display('X') 將遺失的資料替換為 'X'

MaskedArray 類別#

class numpy.ma.MaskedArray[source]#

設計用於操作具有遺失資料的數值陣列的 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.sharedmask#

遮罩的共享狀態(唯讀)。

ma.MaskedArray.hardmask#

指定是否可以通過賦值取消遮罩值。

預設情況下,將明確的值賦值給遮罩陣列條目將取消遮罩它們。當 hardmaskTrue 時,遮罩不會通過賦值而改變。

範例

>>> 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)

由於 MaskedArrayndarray 的子類別,因此遮罩陣列也繼承了 ndarray 實例的所有屬性和特性。

MaskedArray.base

如果記憶體來自其他物件,則為基礎物件。

MaskedArray.ctypes

一個簡化陣列與 ctypes 模組互動的物件。

MaskedArray.dtype

陣列元素的資料類型。

MaskedArray.flags

關於陣列記憶體佈局的資訊。

MaskedArray.itemsize

一個陣列元素以位元組為單位的長度。

MaskedArray.nbytes

陣列元素消耗的總位元組數。

MaskedArray.ndim

陣列維度的數量。

MaskedArray.shape

陣列維度的元組。

MaskedArray.size

陣列中的元素數量。

MaskedArray.strides

遍歷陣列時,在每個維度中步進的位元組元組。

MaskedArray.imag

遮罩陣列的虛部。

MaskedArray.real

遮罩陣列的實部。

MaskedArray.flat

傳回扁平迭代器,或將 self 的扁平版本設定為值。

MaskedArray.__array_priority__

MaskedArray 方法#

另請參閱

陣列方法

轉換#

MaskedArray.__float__()

轉換為浮點數。

MaskedArray.__int__()

轉換為整數。

MaskedArray.view([dtype, type, fill_value])

傳回 MaskedArray 資料的視圖。

MaskedArray.astype(dtype[, order, casting, ...])

陣列的副本,轉換為指定的類型。

MaskedArray.byteswap([inplace])

交換陣列元素的位元組

MaskedArray.compressed()

傳回所有未遮罩的資料作為 1-D 陣列。

MaskedArray.filled([fill_value])

傳回 self 的副本,其中遮罩值填充給定的值。

MaskedArray.tofile(fid[, sep, format])

將遮罩陣列以二進制格式儲存到檔案。

MaskedArray.toflex()

將遮罩陣列轉換為彈性類型陣列。

MaskedArray.tolist([fill_value])

將遮罩陣列的資料部分作為階層式 Python 列表傳回。

MaskedArray.torecords()

將遮罩陣列轉換為彈性類型陣列。

MaskedArray.tostring([fill_value, order])

tobytes 的相容性別名,行為完全相同。

MaskedArray.tobytes([fill_value, order])

將陣列資料作為包含陣列中原始位元組的字串傳回。

形狀操作#

對於 reshape、resize 和 transpose,單個元組參數可以替換為 n 個整數,這些整數將被解釋為 n 元組。

MaskedArray.flatten([order])

傳回折疊成一維的陣列副本。

MaskedArray.ravel([order])

以視圖形式傳回 self 的 1D 版本。

MaskedArray.reshape(*s, **kwargs)

在不更改資料的情況下,為陣列提供新的形狀。

MaskedArray.resize(newshape[, refcheck, order])

MaskedArray.squeeze([axis])

a 中移除長度為一的軸。

MaskedArray.swapaxes(axis1, axis2)

傳回 axis1axis2 互換的陣列視圖。

MaskedArray.transpose(*axes)

傳回軸轉置的陣列視圖。

MaskedArray.T

轉置陣列的視圖。

項目選擇和操作#

對於採用 axis 關鍵字的陣列方法,預設為 None。如果 axis 為 None,則陣列被視為 1-D 陣列。 axis 的任何其他值表示操作應沿其進行的維度。

MaskedArray.argmax([axis, fill_value, out, ...])

傳回給定軸上最大值的索引陣列。

MaskedArray.argmin([axis, fill_value, out, ...])

傳回給定軸上最小值的索引陣列。

MaskedArray.argsort([axis, kind, order, ...])

傳回一個 ndarray,其中包含沿指定軸對陣列進行排序的索引。

MaskedArray.choose(choices[, out, mode])

使用索引陣列從一組選擇中建構新陣列。

MaskedArray.compress(condition[, axis, out])

在 condition 為 True 的地方傳回 a

MaskedArray.diagonal([offset, axis1, axis2])

傳回指定的對角線。

MaskedArray.fill(value)

用純量值填充陣列。

MaskedArray.item(*args)

將陣列的元素複製到標準 Python 純量並傳回。

MaskedArray.nonzero()

傳回未遮罩且非零元素的索引。

MaskedArray.put(indices, values[, mode])

將儲存索引的位置設定為對應的值。

MaskedArray.repeat(repeats[, axis])

重複陣列的元素。

MaskedArray.searchsorted(v[, side, sorter])

尋找應將 v 的元素插入 a 以維持順序的索引。

MaskedArray.sort([axis, kind, order, ...])

就地排序陣列

MaskedArray.take(indices[, axis, out, mode])

沿軸從遮罩陣列中取得元素。

Pickling 和複製#

MaskedArray.copy([order])

傳回陣列的副本。

MaskedArray.dump(file)

將陣列的 pickle 轉儲到指定檔案。

MaskedArray.dumps()

將陣列的 pickle 作為字串傳回。

計算#

MaskedArray.all([axis, out, keepdims])

如果所有元素評估為 True,則傳回 True。

MaskedArray.anom([axis, dtype])

計算沿給定軸的異常(與算術平均值的偏差)。

MaskedArray.any([axis, out, keepdims])

如果 a 的任何元素評估為 True,則傳回 True。

MaskedArray.clip([min, max, out])

傳回一個陣列,其值限制為 [min, max]

MaskedArray.conj()

複共軛所有元素。

MaskedArray.conjugate()

逐元素傳回複共軛。

MaskedArray.cumprod([axis, dtype, out])

傳回陣列元素在給定軸上的累積乘積。

MaskedArray.cumsum([axis, dtype, out])

傳回陣列元素在給定軸上的累積總和。

MaskedArray.max([axis, out, fill_value, ...])

傳回沿給定軸的最大值。

MaskedArray.mean([axis, dtype, out, keepdims])

傳回陣列元素沿給定軸的平均值。

MaskedArray.min([axis, out, fill_value, ...])

傳回沿給定軸的最小值。

MaskedArray.prod([axis, dtype, out, keepdims])

傳回陣列元素在給定軸上的乘積。

MaskedArray.product([axis, dtype, out, keepdims])

傳回陣列元素在給定軸上的乘積。

MaskedArray.ptp([axis, out, fill_value, ...])

傳回沿給定維度的(最大值 - 最小值)(即峰對峰值)。

MaskedArray.round([decimals, out])

傳回每個元素四捨五入到給定小數位數的值。

MaskedArray.std([axis, dtype, out, ddof, ...])

傳回陣列元素沿給定軸的標準差。

MaskedArray.sum([axis, dtype, out, keepdims])

傳回陣列元素在給定軸上的總和。

MaskedArray.trace([offset, axis1, axis2, ...])

傳回沿陣列對角線的總和。

MaskedArray.var([axis, dtype, out, ddof, ...])

計算沿指定軸的變異數。

算術和比較運算#

比較運算子:#

MaskedArray.__lt__(other)

傳回 self<value。

MaskedArray.__le__(other)

傳回 self<=value。

MaskedArray.__gt__(other)

傳回 self>value。

MaskedArray.__ge__(other)

傳回 self>=value。

MaskedArray.__eq__(other)

檢查 other 是否逐元素等於 self。

MaskedArray.__ne__(other)

檢查 other 是否逐元素不等於 self。

陣列的真值 (bool()):#

MaskedArray.__bool__(/)

如果 self 為 True 則為 True,否則為 False

算術:#

MaskedArray.__abs__(self)

MaskedArray.__add__(other)

將 self 加到 other,並傳回新的遮罩陣列。

MaskedArray.__radd__(other)

將 other 加到 self,並傳回新的遮罩陣列。

MaskedArray.__sub__(other)

從 self 中減去 other,並傳回新的遮罩陣列。

MaskedArray.__rsub__(other)

從 other 中減去 self,並傳回新的遮罩陣列。

MaskedArray.__mul__(other)

將 self 乘以 other,並傳回新的遮罩陣列。

MaskedArray.__rmul__(other)

將 other 乘以 self,並傳回新的遮罩陣列。

MaskedArray.__div__(other)

將 other 除入 self,並傳回新的遮罩陣列。

MaskedArray.__truediv__(other)

將 other 除入 self,並傳回新的遮罩陣列。

MaskedArray.__rtruediv__(other)

將 self 除入 other,並傳回新的遮罩陣列。

MaskedArray.__floordiv__(other)

將 other 除入 self,並傳回新的遮罩陣列。

MaskedArray.__rfloordiv__(other)

將 self 除入 other,並傳回新的遮罩陣列。

MaskedArray.__mod__(value, /)

傳回 self%value。

MaskedArray.__rmod__(value, /)

傳回 value%self。

MaskedArray.__divmod__(value, /)

傳回 divmod(self, value)。

MaskedArray.__rdivmod__(value, /)

傳回 divmod(value, self)。

MaskedArray.__pow__(other)

將 self 提升為 other 次方,並遮罩潛在的 NaNs/Infs

MaskedArray.__rpow__(other)

將 other 提升為 self 次方,並遮罩潛在的 NaNs/Infs

MaskedArray.__lshift__(value, /)

傳回 self<<value。

MaskedArray.__rlshift__(value, /)

傳回 value<<self。

MaskedArray.__rshift__(value, /)

傳回 self>>value。

MaskedArray.__rrshift__(value, /)

傳回 value>>self。

MaskedArray.__and__(value, /)

傳回 self&value。

MaskedArray.__rand__(value, /)

傳回 value&self。

MaskedArray.__or__(value, /)

傳回 self|value。

MaskedArray.__ror__(value, /)

傳回 value|self。

MaskedArray.__xor__(value, /)

傳回 self^value。

MaskedArray.__rxor__(value, /)

傳回 value^self。

算術,原位運算:#

MaskedArray.__iadd__(other)

原位將 other 加到 self。

MaskedArray.__isub__(other)

原位從 self 減去 other。

MaskedArray.__imul__(other)

原位將 self 乘以 other。

MaskedArray.__idiv__(other)

原位將 self 除以 other。

MaskedArray.__itruediv__(other)

原位將 self 真實除以 other。

MaskedArray.__ifloordiv__(other)

原位將 self 向下除以 other 取整數。

MaskedArray.__imod__(value, /)

傳回 self%=value。

MaskedArray.__ipow__(other)

原位將 self 提升為 other 次方。

MaskedArray.__ilshift__(value, /)

傳回 self<<=value。

MaskedArray.__irshift__(value, /)

傳回 self>>=value。

MaskedArray.__iand__(value, /)

傳回 self&=value。

MaskedArray.__ior__(value, /)

傳回 self|=value。

MaskedArray.__ixor__(value, /)

傳回 self^=value。

表示法#

MaskedArray.__repr__()

字面字串表示法。

MaskedArray.__str__()

傳回 str(self)。

MaskedArray.ids()

傳回資料和遮罩區域的位址。

MaskedArray.iscontiguous()

傳回布林值,指示資料是否為連續的。

特殊方法#

適用於標準函式庫函數

MaskedArray.__copy__()

當在陣列上呼叫 copy.copy 時使用。

MaskedArray.__deepcopy__(memo, /)

當在陣列上呼叫 copy.deepcopy 時使用。

MaskedArray.__getstate__()

傳回遮罩陣列的內部狀態,用於 pickle 序列化。

MaskedArray.__reduce__()

傳回一個 3 元組,用於 pickle 序列化 MaskedArray。

MaskedArray.__setstate__(state)

還原遮罩陣列的內部狀態,用於 pickle 反序列化。

基本客製化

MaskedArray.__new__(cls[, data, mask, ...])

從頭開始建立新的遮罩陣列。

MaskedArray.__array__([dtype], *[, copy])

對於 dtype 參數,如果未給定 dtype 或其與陣列的資料類型相符,則傳回對 self 的新參考。

MaskedArray.__array_wrap__(obj[, context, ...])

ufuncs 的特殊掛鉤。

容器客製化:(請參閱 索引

MaskedArray.__len__(/)

傳回 len(self)。

MaskedArray.__getitem__(indx)

x.__getitem__(y) <==> x[y]

MaskedArray.__setitem__(indx, value)

x.__setitem__(i, y) <==> x[i]=y

MaskedArray.__delitem__(key, /)

刪除 self[key]。

MaskedArray.__contains__(key, /)

傳回 key in self。

特定方法#

處理遮罩#

以下方法可用於存取關於遮罩的資訊或操作遮罩。

MaskedArray.__setmask__(mask[, copy])

設定遮罩。

MaskedArray.harden_mask()

強制遮罩為硬性,防止透過賦值取消遮罩。

MaskedArray.soften_mask()

強制遮罩為軟性(預設),允許透過賦值取消遮罩。

MaskedArray.unshare_mask()

複製遮罩並將 sharedmask 旗標設定為 False

MaskedArray.shrink_mask()

在可能的情況下將遮罩縮減為 nomask。

處理 fill_value#

MaskedArray.get_fill_value()

遮罩陣列的填充值是一個純量。

MaskedArray.set_fill_value([value])

計算遺失的元素#

MaskedArray.count([axis, keepdims])

沿著給定軸計算陣列中未被遮罩的元素數量。