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.x
和arr.y
作为数组成员来访问字段.- 参数:
- shapetuple
输出数组的形状.
- dtype数据类型, 可选
所需的数据类型.默认情况下,数据类型是根据 formats、names、titles、aligned 和 byteorder 确定的.
- formats数据类型列表,可选
一个包含不同列数据类型的列表,例如
['i4', 'f8', 'i4']
. formats 不 支持直接使用类型的新约定,即(int, float, int)
.请注意,`formats` 必须是一个列表,而不是一个元组.鉴于 formats 有一定的局限性,我们建议指定dtype
代替.- namesstr 的元组,可选
每个列的名称,例如
('x', 'y', 'z')
.- buf缓冲区,可选
默认情况下,会创建一个具有给定形状和数据类型的新数组.如果指定了 buf 并且是一个暴露缓冲区接口的对象,数组将使用现有缓冲区的内存.在这种情况下,可以使用 offset 和 strides 关键字.
- 返回:
- recrecarray
给定形状和类型的空数组.
- 其他参数:
- titlesstr 的元组,可选
列名的别名.例如,如果 names 是
('x', 'y', 'z')
而 titles 是('x_coordinate', 'y_coordinate', 'z_coordinate')
,那么arr['x']
等同于arr.x
和arr.x_coordinate
.- byteorder{‘<’, ‘>’, ‘=’}, 可选
所有字段的字节顺序.
- aligned布尔值, 可选
按照C编译器的方式对齐内存中的字段.
- strides整数的元组,可选
缓冲区 (buf) 根据这些步幅(步幅定义了每个数组元素、行、列等在内存中占用的字节数)进行解释.
- offsetint, 可选
从此偏移量开始读取缓冲区(buf).
- order{‘C’, ‘F’}, 可选
行优先(C风格)或列优先(Fortran风格)顺序.
参见
numpy.rec.fromrecords
从数据构建记录数组.
numpy.record
recarray
的基本数据类型.numpy.rec.format_parser
从格式、名称、标题确定数据类型.
备注
这个构造函数可以与
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
一个在数组上进行一维迭代的迭代器.
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])找到 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)返回一个数组的视图,其中 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