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

数组的一维迭代器。

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])

a.flat[n] = values[n] 用于所有 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 标量的嵌套列表。

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