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

参数:
shapetuple

输出数组的形状。

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整数元组,可选

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

offsetint, optional

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

order{‘C’, ‘F’}, optional

行主序(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

数组的虚部。

itemsize

数组一个元素占用的字节数。

mT

转置数组的矩阵视图。

nbytes

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

ndim

数组的维度数。

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

返回将此数组排序的索引。

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

返回指定的对角线。

dot(other, /[, out])

有关完整文档,请参阅 numpy.dot

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-th 位置的元素处于它在已排序数组中的位置。

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

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

put(indices, values[, mode])

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

ravel([order])

返回一个展平的数组。

repeat(repeats[, axis])

重复数组中的元素。

reshape(a.reshape)

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

resize(a.resize)

原地更改数组的形状和大小。

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

就地排序数组。

squeeze([axis])

a 中移除长度为一的轴。

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

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

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

沿给定轴返回数组元素的总和。

swapaxes(axis1, axis2, /)

返回数组的视图,其中 axis1axis2 已交换。

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

a 中按给定索引返回一个由元素组成的数组。

to_device(device, /, *[, stream])

为了 Array API 兼容性。

tobytes([order])

构建包含数组原始数据字节的 Python bytes 对象。

tofile(fid, /[, sep, format])

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

tolist()

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

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

返回数组对角线上的元素之和。

transpose(*axes)

返回一个视图,其中数组的轴已转置。

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

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

view([dtype][, type])

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

字段