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。- 参数:
- shapetuple
输出数组的形状。
- 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整数元组,可选
根据这些步幅(strides 定义了每个数组元素、行、列等在内存中占用的字节数)解释缓冲区(buf)。
- offsetint, optional
从该偏移量(buf)开始读取缓冲区。
- order{‘C’, ‘F’}, optional
行主序(C 风格)或列主序(Fortran 风格)顺序。
另请参阅
numpy.rec.fromrecords从数据构造一个记录数组。
numpy.recordrecarray的基本数据类型。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')])
- 属性:
方法
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, stable])返回将此数组排序的索引。
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])返回指定的对角线。
dot(other, /[, out])有关完整文档,请参阅
numpy.dot。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-th 位置的元素处于它在已排序数组中的位置。
prod([axis, dtype, out, keepdims, initial, ...])返回数组元素在给定轴上的乘积
put(indices, values[, mode])对于所有
indices中的n,设置a.flat[n] = values[n]。ravel([order])返回一个展平的数组。
repeat(repeats[, axis])重复数组中的元素。
reshape(a.reshape)返回一个具有新形状的包含相同数据的数组。
resize(a.resize)原地更改数组的形状和大小。
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, stable])就地排序数组。
squeeze([axis])从 a 中移除长度为一的轴。
std([axis, dtype, out, ddof, keepdims, ...])返回给定轴上数组元素的标准差。
sum([axis, dtype, out, keepdims, initial, where])沿给定轴返回数组元素的总和。
swapaxes(axis1, axis2, /)返回数组的视图,其中 axis1 和 axis2 已交换。
take(indices[, axis, out, mode])从 a 中按给定索引返回一个由元素组成的数组。
to_device(device, /, *[, stream])为了 Array API 兼容性。
tobytes([order])构建包含数组原始数据字节的 Python bytes 对象。
tofile(fid, /[, sep, format])将数组以文本或二进制(默认)形式写入文件。
tolist()将数组作为深度为
a.ndim的嵌套 Python 标量列表返回。trace([offset, axis1, axis2, dtype, out])返回数组对角线上的元素之和。
transpose(*axes)返回一个视图,其中数组的轴已转置。
var([axis, dtype, out, ddof, keepdims, ...])返回数组元素在给定轴上的方差。
view([dtype][, type])具有相同数据的数组的新视图。
字段