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任何
输入对象.有关如何处理各种输入类型的详细信息,请参见注释.
- dtype数据类型, 可选
数组的有效数据类型.
- shapeint 或 int 的元组,可选
每个数组的形状.
- offsetint, 可选
文件或缓冲区中开始读取的位置.
- strides整数的元组,可选
缓冲区 (buf) 根据这些步幅(步幅定义了每个数组元素、行、列等在内存中占用的字节数)进行解释.
- 格式, 名称, 标题, 对齐, 字节顺序
如果 dtype 是
None
,这些参数会被传递给 numpy.format_parser 以构造一个 dtype.详细文档请参见该函数.- copybool, 可选
是否复制输入对象(True),或者使用引用代替.此选项仅在输入是 ndarray 或 recarray 时适用.默认为 True.
- 返回:
- np.recarray
从指定对象创建的记录数组.
备注
如果 obj 是
None
,则调用recarray
构造函数.如果 obj 是一个字符串,则调用fromstring
构造函数.如果 obj 是一个列表或元组,则如果第一个对象是ndarray
,则调用fromarrays
,否则调用fromrecords
.如果 obj 是recarray
,则在copy=True
的情况下复制 recarray 中的数据,并使用新的格式、名称和标题.如果 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')