numpy.rec.array#

rec.array(obj, dtype=None, shape=None, offset=0, strides=None, formats=None, names=None, titles=None, aligned=False, byteorder=None, copy=True)[原始碼]#

從多種物件建構記錄陣列。

一個通用的記錄陣列建構子,會根據輸入分派到適當的 recarray 建立函式 (請參閱「註解」)。

參數:
objany

輸入物件。請參閱「註解」以瞭解各種輸入類型的處理方式。

dtypedata-type,選填

陣列的有效 dtype。

shape整數或整數元組,選填

每個陣列的形狀。

offset整數,選填

開始從檔案或緩衝區讀取的位置。

strides整數元組,選填

緩衝區 (buf) 會根據這些步幅 (strides) 進行解譯 (步幅定義每個陣列元素、列、行等在記憶體中佔用的位元組數)。

formats、names、titles、aligned、byteorder

如果 dtypeNone,這些引數會傳遞至 numpy.format_parser 以建構 dtype。請參閱該函式以取得詳細的文件。

copy布林值,選填

是否複製輸入物件 (True),或改為使用參考。此選項僅在輸入為 ndarray 或 recarray 時適用。預設為 True。

傳回值:
np.recarray

從指定的物件建立的記錄陣列。

註解

如果 objNone,則呼叫 recarray 建構子。如果 obj 為字串,則呼叫 fromstring 建構子。如果 obj 為清單或元組,則如果第一個物件是 ndarray,則呼叫 fromarrays,否則呼叫 fromrecords。如果 objrecarray,則複製 recarray 中的資料 (如果 copy=True) 並使用新的 formats、names 和 titles。如果 obj 為檔案,則呼叫 fromfile。最後,如果 objndarray,則傳回 obj.view(recarray),並在 copy=True 時複製資料。

範例

>>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> np.rec.array(a)
rec.array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]],
          dtype=int64)
>>> b = [(1, 1), (2, 4), (3, 9)]
>>> c = np.rec.array(b, formats = ['i2', 'f2'], names = ('x', 'y'))
>>> c
rec.array([(1, 1.), (2, 4.), (3, 9.)],
          dtype=[('x', '<i2'), ('y', '<f2')])
>>> c.x
array([1, 2, 3], dtype=int16)
>>> c.y
array([1.,  4.,  9.], dtype=float16)
>>> r = np.rec.array(['abc','def'], names=['col1','col2'])
>>> print(r.col1)
abc
>>> r.col1
array('abc', dtype='<U3')
>>> r.col2
array('def', dtype='<U3')