当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy recarray用法及代码示例


本文简要介绍 python 语言中 numpy.recarray 的用法。

用法:

class  numpy.recarray(shape, dtype=None, buf=None, offset=0, strides=None, formats=None, names=None, titles=None, byteorder=None, aligned=False, order='C')

构造一个允许使用属性进行字段访问的 ndarray。

数组可能具有包含字段的数据类型,类似于电子表格中的列。一个示例是 [(x, int), (y, float)] ,其中数组中的每个条目都是一对 (int, float) 。通常,这些属性是使用字典查找来访问的,例如 arr['x']arr['y'] 。记录数组允许使用 arr.xarr.y 将字段作为数组成员访问。

参数

shape 元组

输出数组的形状。

dtype 数据类型,可选

所需的数据类型。默认情况下,数据类型由格式、名称、标题、对齐和字节顺序确定。

formats 数据类型列表,可选

包含不同列的数据类型的列表,例如['i4', 'f8', 'i4'].格式不是支持直接使用类型的新约定,即(int, float, int).注意格式必须是列表,而不是元组。鉴于格式有点有限,我们建议指定numpy.dtype反而。

names str 的元组,可选

每列的名称,例如('x', 'y', 'z')

buf 缓冲区,可选

默认情况下,会创建给定形状和数据类型的新数组。如果缓冲区被指定并且是一个公开缓冲区接口的对象,该数组将使用现有缓冲区中的内存。在这种情况下,抵消numpy.recarray.strides关键字可用。

返回

rec 重新排列

给定形状和类型的空数组。

其他参数

titles str 的元组,可选

列名的别名。例如,如果名字('x', 'y', 'z')标题('x_coordinate', 'y_coordinate', 'z_coordinate'), 然后arr['x']相当于两者arr.xarr.x_coordinate.

byteorder {‘<’, ‘>’, ‘=’}, 可选

所有字段的字节顺序。

aligned 布尔型,可选

像 C-compiler 那样对齐内存中的字段。

strides 整数元组,可选

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

offset 整数,可选

从此偏移开始读取缓冲区 (buf)。

order {‘C’, ‘F’},可选

行优先(C 风格)或列优先(Fortran-style)顺序。

注意

此构造函数可以与 empty 进行比较:它创建一个新的记录数组,但不填充数据。要从数据创建记录数组,请使用以下方法之一:

  1. 使用 arr.view(np.recarray) 创建标准 ndarray 并将其转换为记录数组

  2. 使用 buf 关键字。

  3. 采用np.rec.fromrecords.

例子

创建一个包含两个字段 xy 的数组:

>>> x = np.array([(1.0, 2), (3.0, 4)], dtype=[('x', '<f8'), ('y', '<i8')])
>>> x
array([(1., 2), (3., 4)], dtype=[('x', '<f8'), ('y', '<i8')])
>>> x['x']
array([1., 3.])

将数组视为记录数组:

>>> x = x.view(np.recarray)
>>> x.x
array([1., 3.])
>>> x.y
array([2, 4])

创建一个新的空记录数组:

>>> np.recarray((2,),
... dtype=[('x', int), ('y', float), ('z', int)]) 
rec.array([(-1073741821, 1.2249118382103472e-301, 24547520),
       (3471280, 1.2134086255804012e-316, 0)],
      dtype=[('x', '<i4'), ('y', '<f8'), ('z', '<i4')])

属性

numpy.recarray.T

转置数组。

numpy.recarray.base

如果内存来自其他对象,则为基础对象。

numpy.recarray.ctypes

一个用于简化数组与 ctypes 模块交互的对象。

data

指向数组数据开头的 Python 缓冲区对象。

numpy.dtype

数组元素的数据类型。

flags

有关阵列的内存布局的信息。

numpy.recarray.flat

数组上的一维迭代器。

numpy.imag

数组的虚部。

numpy.recarray.itemsize

一个数组元素的长度(以字节为单位)。

numpy.recarray.nbytes

数组元素消耗的总字节数。

numpy.recarray.ndim

数组维数。

numpy.real

数组的实部。

numpy.shape

数组维度的元组。

numpy.recarray.size

数组中的元素数。

numpy.recarray.strides

遍历数组时要在每个维度中步进的字节元组。

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.recarray。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。