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 创建函数(参见注释).

参数:
obj任何类型

输入对象. 有关如何处理各种输入类型的详细信息,请参见“注释”.

dtypedata-type,可选

数组的有效 dtype.

shapeint 或 int 的元组,可选.

每个数组的形状.

offset整数,可选

从文件或缓冲区开始读取的位置.

strides整数元组,可选

Buffer ( buf ) 根据这些步幅进行解释(步幅定义了每个数组元素,行,列等在内存中占用的字节数).

formats, names, titles, aligned, byteorder

如果 dtypeNone ,则这些参数将传递给 numpy.format_parser 以构造 dtype. 有关详细文档,请参见该函数.

copybool, 可选

是否复制输入对象 (True),还是使用引用. 此选项仅在输入是 ndarray 或 recarray 时适用. 默认为 True.

返回:
np.recarray

从指定对象创建的记录数组.

注释

如果 objNone ,则调用 recarray 构造函数. 如果 obj 是一个字符串,则调用 fromstring 构造函数. 如果 obj 是一个列表或元组,则如果第一个对象是 ndarray ,则调用 fromarrays ,否则调用 fromrecords . 如果 obj 是一个 recarray ,则在 recarray 中制作数据的副本 (如果 copy=True ) 并使用新的格式,名称和标题. 如果 obj 是一个文件,则调用 fromfile . 最后,如果 obj 是一个 ndarray ,则返回 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')