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')[source]#

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

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

参数:
shape元组

输出数组的形状。

dtype数据类型,可选

所需的数据类型。默认情况下,数据类型由formatsnamestitlesalignedbyteorder 确定。

formats数据类型列表,可选

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

names字符串元组,可选

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

buf缓冲区,可选

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

返回值:
recrecarray

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

其他参数:
titles字符串元组,可选

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

byteorder{'<','>','='},可选

所有字段的字节序。

aligned布尔值,可选

像 C 编译器一样对齐内存中的字段。

strides整数元组,可选

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

offset整数,可选

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

order{'C','F'},可选

行主序(C 风格)或列主序(Fortran 风格)顺序。

另请参见

numpy.rec.fromrecords

从数据构造记录数组。

numpy.record

recarray 的基础数据类型。

numpy.rec.format_parser

根据 formats、names、titles 确定数据类型。

备注

此构造函数可以与 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])

查找应在 a 中插入 v 的元素以保持顺序的索引。

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