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.- 参数:
- shape元组
输出数组的形状.
- dtypedata-type,可选
所需的数据类型.默认情况下,数据类型由 formats , names , titles , aligned 和 byteorder 确定.
- formats数据类型列表,可选
包含不同列的数据类型的列表,例如
['i4', 'f8', 'i4']. formats 不支持直接使用类型的新约定,即(int, float, int).请注意, formats 必须是列表,而不是元组.鉴于 formats 有些局限性,我们建议改为指定dtype.- namesstr 的元组,可选
每个列的名称,例如
('x', 'y', 'z').- bufbuffer,可选
默认情况下,将创建一个具有给定形状和数据类型的新数组.如果指定了 buf 并且是一个暴露缓冲区接口的对象,则该数组将使用现有缓冲区中的内存.在这种情况下,可以使用 offset 和 strides 关键字.
- 返回:
- recrecarray
给定形状和类型的空数组.
- 其他参数:
- titlesstr 的元组,可选
列名的别名.例如,如果 names 是
('x', 'y', 'z')并且 titles 是('x_coordinate', 'y_coordinate', 'z_coordinate'),那么arr['x']等价于arr.x和arr.x_coordinate.- byteorder{‘<’, ‘>’, ‘=’},可选
所有字段的字节顺序.
- alignedbool,可选
在内存中像 C 编译器一样对齐字段.
- strides整数元组,可选
buf 根据这些步幅进行解释(步幅定义了每个数组元素,行,列等在内存中占据的字节数).
- offsetint, optional
从此偏移量开始读取缓冲区 ( buf ).
- order{‘C’, ‘F’},可选
行优先(C 样式)或列优先(Fortran 样式)顺序.
参见
numpy.rec.fromrecords从数据构造一个记录数组.
numpy.recordrecarray的基本数据类型.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一个在数组上进行 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()对所有元素进行复共轭.
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])对于 indices 中的所有 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 中移除长度为 1 的轴.
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 标量嵌套列表返回.trace([offset, axis1, axis2, dtype, out])返回数组沿对角线的和.
transpose(axes)返回一个轴已转置的数组视图.
var([axis, dtype, out, ddof, keepdims, where])返回给定轴上数组元素的方差.
view([dtype][, type])具有相同数据的数组的新视图.
dot
field
to_device