上一主题

N维数组(ndarray

下一主题

numpy.ndarray.T

numpy.ndarray

class numpy.ndarray[source]

数组对象表示固定大小项目的多维均匀数组。相关联的数据类型对象描述了数组中每个元素的格式(其字节顺序,它在内存中占用的字节数,是整数,浮点数还是其他值等)

数组应使用arrayzerosempty(请参阅下面的“另请参阅”部分)来构造。这里给出的参数指的是用于实例化数组的低级方法(ndarray(...))。

有关更多信息,请参阅numpy模块并检查数组的方法和属性。

参数:

(用于__new__方法;请参见下面的注释)

shape:ints的元组

已创建数组的形状。

dtype:数据类型,可选

可以解释为numpy数据类型的任何对象。

buffer:对象暴露缓冲区接口,可选

用于用数据填充数组。

offset:int,可选

缓冲器中数组数据的偏移量。

strides:ints的tuple,可选

内存中的数据步长。

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

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

也可以看看

array
构造数组。
zeros
创建一个数组,其每个元素为零。
empty
创建一个数组,但保留其分配的内存不变(即,它包含“垃圾”)。
dtype
创建数据类型。

笔记

有两种使用__new__创建数组的模式:

  1. 如果buffer为None,则只使用shapedtypeorder
  2. 如果buffer是暴露缓冲区接口的对象,则解释所有关键字。

不需要__init__方法,因为数组在__new__方法后完全初始化。

例子

这些示例说明了低级ndarray构造函数。请参阅上面的请参阅部分,以了解更容易构建ndarray的方法。

第一种模式,缓冲为无:

>>> np.ndarray(shape=(2,2), dtype=float, order='F')
array([[ -1.13698227e+002,   4.25087011e-303],
       [  2.88528414e-306,   3.27025015e-309]])         #random

第二模式:

>>> np.ndarray((2,), buffer=np.array([1,2,3]),
...            offset=np.int_().itemsize,
...            dtype=int) # offset = 1*itemsize, i.e. skip first element
array([2, 3])

属性

T 与self.transpose()相同,除非self是self.ndim返回
data Python缓冲区对象指向数组的数据的开始。
dtype 数组元素的数据类型。
flags 有关数组的内存布局的信息。
flat 数组上的1-D迭代器。
imag 数组的虚部。
real 数组的实数部分(对应虚数的概念)
size 数组中的元素数。
itemsize 一个数组元素的长度(以字节为单位)。
nbytes 数组的元素消耗的总字节数。
ndim 数组尺寸数。
shape 数组维数组。
strides 遍历数组时,在每个维度中步进的字节数组。
ctypes 一个对象,用于简化数组与ctypes模块的交互。
base 如果内存是来自某个其他对象的基本对象。

方法

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。
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]) 数组的新视图与相同的数据。