numpy.recarray#

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

输出数组的形状。

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。

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

如果 a 的任何元素为真,则返回 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 标量列表返回。

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

返回数组对角线上的和。

transpose(*axes)

返回轴转置后的数组视图。

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

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

view([dtype][, type])

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

dot

field

to_device