numpy.ma.fromflex#

ma.fromflex(fxarray)[原始碼]#

從合適的彈性型別陣列建立遮罩陣列。

輸入陣列必須具有帶有 _data_mask 欄位的資料型別。此類型的陣列由 MaskedArray.toflex 輸出。

參數:
fxarrayndarray

結構化的輸入陣列,包含 _data_mask 欄位。如果存在其他欄位,則會捨棄。

回傳值:
resultMaskedArray

建構的遮罩陣列。

參見

MaskedArray.toflex

從遮罩陣列建立彈性型別陣列。

範例

>>> import numpy as np
>>> x = np.ma.array(np.arange(9).reshape(3, 3), mask=[0] + [1, 0] * 4)
>>> rec = x.toflex()
>>> rec
array([[(0, False), (1,  True), (2, False)],
       [(3,  True), (4, False), (5,  True)],
       [(6, False), (7,  True), (8, False)]],
      dtype=[('_data', '<i8'), ('_mask', '?')])
>>> x2 = np.ma.fromflex(rec)
>>> x2
masked_array(
  data=[[0, --, 2],
        [--, 4, --],
        [6, --, 8]],
  mask=[[False,  True, False],
        [ True, False,  True],
        [False,  True, False]],
  fill_value=999999)

額外的欄位可以存在於結構化陣列中,但會被捨棄

>>> dt = [('_data', '<i4'), ('_mask', '|b1'), ('field3', '<f4')]
>>> rec2 = np.zeros((2, 2), dtype=dt)
>>> rec2
array([[(0, False, 0.), (0, False, 0.)],
       [(0, False, 0.), (0, False, 0.)]],
      dtype=[('_data', '<i4'), ('_mask', '?'), ('field3', '<f4')])
>>> y = np.ma.fromflex(rec2)
>>> y
masked_array(
  data=[[0, 0],
        [0, 0]],
  mask=[[False, False],
        [False, False]],
  fill_value=np.int64(999999),
  dtype=int32)