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 .

参数
shape元组

输出数组的形状。

dtype数据类型,可选

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

formats数据类型列表,可选

包含不同列的数据类型的列表,例如 ['i4', 'f8', 'i4'] . formatsnot 支持直接使用类型的新约定,即 (int, float, int) . 注意 formats 必须是列表,而不是元组。鉴于 formats 有点有限,我们建议具体说明 dtype 相反。

namesstr的元组,可选

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

buf缓冲器,可选

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

返回
rec重新排列

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

其他参数
titlesstr的元组,可选

列名的别名。例如,如果 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样式)顺序。

参见

core.records.fromrecords

从数据构造记录数组。

record

的基本数据类型 recarray .

format_parser

根据格式、名称、标题确定数据类型。

笔记

此构造函数可以与 empty :它创建一个新的记录数组,但不填充数据。要从数据创建记录数组,请使用以下方法之一:

  1. 创建标准ndarray并将其转换为记录数组,使用 arr.view(np.recarray)

  2. 使用 buf 关键字。

  3. 使用 np.rec.fromrecords .

实例

创建一个包含两个字段的数组, xy

>>> 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缓冲区对象指向数组数据的开头。

dtype

数组元素的数据类型。

flags

有关数组内存布局的信息。

flat

数组上的一维迭代器。

imag

数组的虚部。

itemsize

一个数组元素的长度(字节)。

nbytes

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

ndim

数组维数。

real

数组的实际部分。

shape

数组维度的元组。

size

数组中的元素数。

strides

遍历数组时要在每个维度中单步执行的字节元组。

方法

all \ [axis, out, keepdims, where] )

如果所有元素的计算结果都为true,则返回true。

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

如果的任何元素 a 计算为真。

argmax \ [axis, out] )

返回给定轴上最大值的索引。

argmin \ [axis, out] )

返回沿给定轴的最小值的索引。

argpartition (KTH) [, axis, kind, order] )

返回将对此数组进行分区的索引。

argsort \ [axis, kind, order] )

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

astype (dType) [, order, casting, subok, copy] )

数组的副本,强制转换为指定类型。

byteswap \ [inplace] )

交换数组元素的字节

choose [选择] [, out, mode] )

使用索引数组从一组选项中构造新数组。

clip \ [min, max, out] )

返回值限制为的数组 [min, max] .

compress [条件] [, axis, out] )

沿给定轴返回此数组的选定切片。

conj ()

复共轭所有元素。

conjugate ()

返回复共轭,按元素排序。

copy \ [order] )

返回数组的副本。

cumprod \ [axis, dtype, out] )

返回元素沿给定轴的累积积。

cumsum \ [axis, dtype, out] )

返回给定轴上元素的累积和。

diagonal \ [offset, axis1, axis2] )

返回指定的对角线。

dot (b) [, out] )

两个数组的点积。

dump \(文件)

将数组的pickle转储到指定的文件。

dumps ()

以字符串形式返回数组的pickle。

fill 值(值)

用标量值填充数组。

flatten \ [order] )

返回折叠为一维的数组的副本。

getfield (dType) [, offset] )

以特定类型返回给定数组的字段。

item * ARGs)

将数组的元素复制到标准的python标量并返回它。

itemset * ARGs)

将标量插入数组(如果可能,将标量转换为数组的dtype)

max \ [axis, out, keepdims, initial, where] )

沿给定轴返回最大值。

mean \ [axis, dtype, out, keepdims, where] )

返回沿给定轴的数组元素的平均值。

min \ [axis, out, keepdims, initial, where] )

沿给定轴返回最小值。

newbyteorder \ [new_order] )

以不同的字节顺序返回具有相同数据的数组。

nonzero ()

返回非零元素的索引。

partition (KTH) [, axis, kind, order] )

重新排列数组中的元素,使第k个位置的元素值位于排序数组中的位置。

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

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

ptp \ [axis, out, keepdims] )

沿给定轴的峰间(最大-最小)值。

put \(索引,值[, mode] )

集合 a.flat[n] = values[n] 为了所有 n 在索引中。

ravel \ [order] )

返回扁平数组。

repeat [重复] [, axis] )

重复数组元素。

reshape [形状] [, order] )

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

resize \新的形状 [, refcheck] )

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

round \ [decimals, out] )

返回 a 每个元素四舍五入到给定的小数位数。

searchsorted (V) [, side, sorter] )

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

setfield \(VAL,数据类型[, offset] )

将值放入由数据类型定义的字段中的指定位置。

setflags \ [write, align, uic] )

分别设置数组标志可写、对齐(writebackifcopy和updateifcopy)。

sort \ [axis, kind, order] )

对数组进行就地排序。

squeeze \ [axis] )

从中删除长度为1的轴 a .

std \ [axis, dtype, out, ddof, keepdims, where] )

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

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

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

swapaxes \(轴1、轴2)

返回数组的视图 axis1axis2 互换的

take [指数] [, 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 * 轴)

返回转置轴的数组视图。

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

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

view \ [dtype] [, type] )

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

field