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 作为数组成员来访问字段.

参数:
shapetuple

输出数组的形状.

dtype数据类型, 可选

所需的数据类型.默认情况下,数据类型是根据 formatsnamestitlesalignedbyteorder 确定的.

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{‘<’, ‘>’, ‘=’}, 可选

所有字段的字节顺序.

aligned布尔值, 可选

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

strides整数的元组,可选

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

offsetint, 可选

从此偏移量开始读取缓冲区(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

一个在数组上进行一维迭代的迭代器.

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 中移除长度为一的轴.

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 标量列表返回.

tostring([order])

tobytes 的兼容别名,具有完全相同的行为.

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

返回数组对角线上的和.

transpose(*axes)

返回数组的视图,轴已转置.

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

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

view([dtype][, type])

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

dot

field

to_device