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.x
和arr.y
。- 参数:
- shape元组
输出数组的形状。
- dtype数据类型,可选
所需的数据类型。默认情况下,数据类型由formats、names、titles、aligned 和 byteorder 确定。
- formats数据类型列表,可选
包含不同列的数据类型的列表,例如
['i4', 'f8', 'i4']
。formats *不支持* 使用类型直接进行新的约定,例如(int, float, int)
。请注意,formats 必须是列表,而不是元组。鉴于 formats 有些限制,我们建议改为指定dtype
。- names字符串元组,可选
每列的名称,例如
('x', 'y', 'z')
。- buf缓冲区,可选
默认情况下,将创建具有给定形状和数据类型的新数组。如果指定了 buf 并且它是一个公开缓冲区接口的对象,则数组将使用现有缓冲区的内存。在这种情况下,可以使用 offset 和
strides
关键字。
- 返回值:
- recrecarray
具有给定形状和类型的空数组。
- 其他参数:
- titles字符串元组,可选
列名的别名。例如,如果 names 是
('x', 'y', 'z')
并且 titles 是('x_coordinate', 'y_coordinate', 'z_coordinate')
,则arr['x']
等效于arr.x
和arr.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
相比较:它创建了一个新的记录数组,但不会用数据填充它。要从数据创建记录数组,可以使用以下方法之一:创建一个标准 ndarray 并将其转换为记录数组,使用
arr.view(np.recarray)
使用 buf 关键字。
使用 np.rec.fromrecords。
示例
创建一个具有两个字段
x
和y
的数组>>> 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
()对所有元素进行复共轭。
返回复共轭,逐元素计算。
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)返回一个数组视图,其中axis1和axis2互换。
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