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元组

输出数组的形状.

dtypedata-type,可选

所需的数据类型.默认情况下,数据类型由 formats , names , titles , alignedbyteorder 确定.

formats数据类型列表,可选

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

namesstr 元组,可选

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

buf缓冲区,可选

默认情况下,创建一个给定形状和数据类型的新数组.如果指定了 buf 并且是一个公开缓冲区接口的对象,则数组将使用现有缓冲区中的内存.在这种情况下,可以使用 offsetstrides 关键字.

返回:
recrecarray

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

其他参数:
titlesstr 元组,可选

列名的别名.例如,如果 names('x', 'y', 'z') 并且 titles('x_coordinate', 'y_coordinate', 'z_coordinate') ,则 arr['x'] 等效于 arr.xarr.x_coordinate .

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

所有字段的字节顺序.

alignedbool, 可选

按照 C 编译器的方式对齐内存中的字段.

strides整数元组,可选

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

offset整数,可选

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

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

行优先(C 样式)或列优先(Fortran 样式)顺序.

参见

numpy.rec.fromrecords

从数据构造记录数组.

numpy.record

recarray 的基本数据类型.

numpy.rec.format_parser

从格式,名称,标题确定数据类型.

注释

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

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

  2. 使用 buf 关键字.

  3. 使用 np.rec.fromrecords .

示例

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

>>> import numpy as np
>>> 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')])
属性:
T

转置数组的视图.

base

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

ctypes

一个简化数组与ctypes模块交互的对象.

data

指向数组数据起始位置的Python缓冲区对象.

device
dtype

数组元素的数据类型.

flags

关于数组内存布局的信息.

flat

数组上的 1-D 迭代器.

imag

数组的虚部.

itemset
itemsize

一个数组元素所占的字节长度.

mT

矩阵转置数组的视图.

nbytes

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

ndim

数组维度的数量.

newbyteorder
ptp
real

数组的实部.

shape

数组维度的元组.

size

数组中的元素数量.

strides

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

方法

all ([axis, out, keepdims, where])

如果所有元素都计算为 True,则返回 True.

any ([axis, out, keepdims, where])

如果 a 的任何元素计算为 True,则返回 True.

argmax ([axis, out, keepdims])

返回给定轴上最大值的索引.

argmin ([axis, out, keepdims])

返回给定轴上最小值的索引.

argpartition (kth[, axis, kind, order])

返回对该数组进行划分的索引.

argsort ([axis, kind, order])

返回对该数组进行排序的索引.

astype (dtype[, order, casting, subok, copy])

数组的副本,转换为指定的类型.

byteswap ([inplace])

交换数组元素的字节

choose (choices[, out, mode])

使用索引数组从一组选择中构建一个新数组.

clip ([min, max, out])

返回一个值被限制在 [min, max] 范围内的数组.

compress (condition[, axis, out])

沿给定轴返回此数组的选定切片.

conj ()

对所有元素取复共轭.

conjugate ()

返回复共轭,按元素计算.

copy ([order])

返回数组的副本.

cumprod ([axis, dtype, out])

返回给定轴上元素的累积乘积.

cumsum ([axis, dtype, out])

返回给定轴上元素的累积和.

diagonal ([offset, axis1, axis2])

返回指定的对角线.

dump (file)

将数组的pickle转储到指定的文件中.

dumps ()

以字符串形式返回数组的pickle.

fill (value)

用标量值填充数组.

flatten ([order])

返回折叠成一维的数组副本.

getfield (dtype[, offset])

返回给定数组的字段,作为某种类型.

item (args)

复制数组的一个元素到标准Python标量并返回它.

max ([axis, out, keepdims, initial, where])

返回给定轴上的最大值.

mean ([axis, dtype, out, keepdims, where])

返回给定轴上的数组元素的平均值.

min ([axis, out, keepdims, initial, where])

返回给定轴上的最小值.

nonzero ()

返回非零元素的索引.

partition (kth[, axis, kind, order])

对数组中的元素进行部分排序,使第 k 个位置上的元素的值位于排序数组中它应该在的位置.

prod ([axis, dtype, out, keepdims, initial, ...])

返回给定轴上的数组元素的乘积.

put (indices, values[, mode])

对于索引中的所有 n ,设置 a.flat[n] = values[n] .

ravel ([order])

返回一个扁平化数组.

repeat (repeats[, axis])

重复数组的元素.

reshape (shape, /, \[, order, copy])

返回一个包含相同数据但具有新形状的数组.

resize (new_shape[, refcheck])

就地更改数组的形状和大小.

round ([decimals, out])

返回将 a 中每个元素四舍五入到指定小数位数后的结果.

searchsorted (v[, side, sorter])

查找应将 v 的元素插入 a 中的索引,以保持顺序.

setfield (val, dtype[, offset])

将一个值放入由数据类型定义的字段中的指定位置.

setflags ([write, align, uic])

分别设置数组标志WRITEABLE,ALIGNED,WRITEBACKIFCOPY.

sort ([axis, kind, order])

对数组进行原地排序.

squeeze ([axis])

a 中删除长度为 1 的轴.

std ([axis, dtype, out, ddof, keepdims, where])

返回给定轴上数组元素的标准差.

sum ([axis, dtype, out, keepdims, initial, where])

返回给定轴上的数组元素的和.

swapaxes (axis1, axis2)

返回一个 axis1axis2 互换的数组视图.

take (indices[, axis, out, mode])

返回一个由给定索引处 a 的元素组成的数组.

tobytes ([order])

构造包含数组中原始数据字节的Python字节.

tofile (fid[, sep, format])

将数组以文本或二进制(默认)形式写入文件.

tolist ()

将数组作为 a.ndim 层的Python标量的嵌套列表返回.

trace ([offset, axis1, axis2, dtype, out])

返回数组对角线元素的和.

transpose (axes)

返回一个轴转置的数组视图.

var ([axis, dtype, out, ddof, keepdims, where])

返回给定轴上数组元素的方差.

view ([dtype][, type])

具有相同数据的新数组视图.

dot

字段

to_device