numpy.recarray

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.recarray.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

class numpy.recarray[source]

构造一个允许使用属性进行字段访问的ndarray。

数组可能具有包含字段的数据类型,类似于电子表格中的列。例如[(x, int), (y, float)] t0 >,其中数组中的每个条目是一对(int, float)通常,使用字典查找(例如arr['x']arr['y'])访问这些属性。记录数组允许使用arr.xarr.y作为数组的成员访问字段。

参数:

shape:tuple

输出数组的形状。

dtype:数据类型,可选

所需的数据类型。默认情况下,数据类型由格式名称标题对齐

格式:数据类型列表,可选

包含不同列的数据类型的列表,例如['i4', 'f8', 'i4']formats does not support the new convention of using types directly, i.e. (int, float, int). 请注意,格式必须是列表,而不是元组。由于格式有限,建议您改为指定dtype

名称:str的tuple,可选

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

buf:buffer,可选

默认情况下,将创建给定形状和数据类型的新数组。如果指定buf并且是暴露缓冲区接口的对象,则数组将使用来自现有缓冲区的内存。在这种情况下,偏移strides关键字可用。

返回:

rec:recarray

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

其他参数:
 

titles:str的tuple,可选

列名称的别名。例如,如果名称('x', 'y', 'z') 标题('x_coordinate', 'y_coordinate', 'z_coordinate') t9 >,则arr['x']等效于arr.xarr.x_coordinate

byteorder:{'','='},可选

所有字段的字节顺序。

aligned:bool,可选

将内存中的字段与C编译器对齐。

strides:ints的tuple,可选

根据这些步长解释缓冲区(buf)(strides定义每个数组元素,行,列等的字节数。占用内存)。

offset:int,可选

从此偏移开始读取缓冲区(buf)。

order:{'C','F'},可选

行主(C风格)或列主(Fortran风格)顺序。

也可以看看

rec.fromrecords
从数据构造记录数组。
record
recarray的基本数据类型。
format_parser
从格式,名称,标题确定数据类型。

笔记

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

  1. 使用arr.view(np.recarray)创建标准ndarray并将其转换为记录数组。
  2. 使用buf关键字。
  3. 使用np.rec.fromrecords

例子

创建具有两个字段xy的数组:

>>> x = np.array([(1.0, 2), (3.0, 4)], dtype=[('x', float), ('y', int)])
>>> x
array([(1.0, 2), (3.0, 4)],
      dtype=[('x', '<f8'), ('y', '<i4')])
>>> 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 与self.transpose()相同,除非self是self.ndim返回
base 如果内存是来自某个其他对象的基本对象。
ctypes 一个对象,用于简化数组与ctypes模块的交互。
data Python缓冲区对象指向数组的数据的开始。
dtype 数组元素的数据类型。
flags 有关数组的内存布局的信息。
flat 数组上的1-D迭代器。
imag 数组的虚部。
itemsize 一个数组元素的长度(以字节为单位)。
nbytes 数组的元素消耗的总字节数。
ndim 数组尺寸数。
real 数组的真实部分。
shape 数组维数组。
size 数组中的元素数。
strides 遍历数组时,在每个维度中步进的字节数组。

方法

all([axis,out,keepdims]) 如果所有元素均为True,则返回True。
any([axis,out,keepdims]) 如果a的任何元素求值为True,则返回True。
argmax([axis,out]) 沿给定轴的最大值的返回指数。
argmin([axis,out]) 沿着a的给定轴的最小值的返回指数。
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]) 返回指定的对角线。
dot(b [,out]) 两个数组的点积。
dump(file) 将数组的pickle转储到指定的文件。
dumps() 以字符串形式返回数组的pickle。
field(attr [,val])
fill(value) 使用标量值填充数组。
flatten([order]) 将折叠的数组的副本返回到一个维度。
getfield(dtype [,offset]) 将给定数组的字段返回为特定类型。
item(\ * args) 将数组的元素复制到标准Python标量并返回。
itemset(\ * args) 将标量插入到数组中(如果可能,将标量转换为数组的dtype)
max([axis,out]) 沿给定轴返回最大值。
mean([axis,dtype,out,keepdims]) 返回沿给定轴的数组元素的平均值。
min([axis,out,keepdims]) 沿给定轴返回最小值。
newbyteorder([new_order]) 返回具有以不同字节顺序查看的相同数据的数组。
nonzero() 返回非零元素的索引。
partition(kth [,axis,kind,order]) 重新排列数组中的元素,使得第k个位置的元素的值在排序数组中的位置。
prod([axis,dtype,out,keepdims]) 返回给定轴上的数组元素的乘积
ptp([axis,out]) 沿给定轴的峰到峰(最大 - 最小)值。
put(indices,values [,mode]) 对于所有n,设置a.flat [n] = 在指数。
ravel([order]) 返回展平的数组。
repeat(重复[,轴]) 重复数组的元素。
reshape(shape [,order]) 返回包含具有新形状的相同数据的数组。
resize(new_shape [,refcheck]) 就地更改数组的形状和大小。
round([小数,输出]) 返回a,每个元素四舍五入为给定的小数位数。
searchsorted(v [,side,sorter]) 查找索引,其中v的元素应插入到a以维持顺序。
setfield 将值放入由数据类型定义的字段中的指定位置。
setflags([write,align,uic]) 分别设置数组标志WRITEABLE,ALIGNED和UPDATEIFCOPY。
sort([axis,kind,order]) 就地对数组进行排序。
squeeze([axis]) a形状删除单维条目
std([axis,dtype,out,ddof,keepdims]) 返回给定轴上的数组元素的标准偏差。
sum([axis,dtype,out,keepdims]) 返回给定轴上的数组元素的总和。
swapaxes(axis1,axis2) 返回数组的视图,其中axis1axis2互换。
take(indices [,axis,out,mode]) 返回由给定索引处的a元素形成的数组。
tobytes([order]) 在数组中构造包含原始数据字节的Python字节。
tofile(fid [,sep,format]) 将数组作为文本或二进制(默认)写入文件。
tolist() 将数组返回为(可能是嵌套的)列表。
tostring([order]) 在数组中构造包含原始数据字节的Python字节。
trace([offset,axis1,axis2,dtype,out]) 沿数组的对角线返回总和。
transpose(\ * axes) 返回具有轴转置的数组的视图。
var([axis,dtype,out,ddof,keepdims]) 沿给定轴返回数组元素的方差。
view([dtype,type]) 数组的新视图与相同的数据。