ndarray对象

来源:互联网 发布:ubuntu root用户提权 编辑:程序博客网 时间:2024/05/29 16:19

简介:

NumPy提供了N维数组的类型,既ndarray。下面这张图展示了三个基本的来描述数组的对象:1)ndarray本身,2)描述特定大小数组的data-type对象,3)当获取元素时所返回的array-scalar对象。
这里写图片描述
ndarray(N-dimensional array)是相同类型,固定尺寸的元素的多维储存容器。由此我们可以
知道Numpy提供的ndarray容器有两个特点:第一,它是固定的尺寸,既是你如果新建了一个ndarray的实例,则它的大小就是固定的,不能再添加元素和删除元素,只能更改其中的元素。这类似于java的数组,以及python标准库中所提供的元组对象。第二,他所包含元素的类型必须是一致的,不能出现不一样的元素。这区别于pandas库中所提供的DataFrame对象
也正是因为这两个特点,使得ndarray对象的运算效率特别快。
shape定义了它的纬度(dimensions)和元素(items)。而datat-type(dtype)对象则指定了数组中的元素(items)。

创建ndarray对象

1和0的ndarray对象(Ones and zeros)

Function Describe empty(shape[, dtype, order]) 返回一个给定形状的空ndarray数组 empty_like(a[, dtype, order, subok]) 返回一个和给定数组相同形状的ndarray eye(N[, M, k, dtype]) 返回一个对角线元素为1,其他全为0的ndarray数组,可以指定对角位置 identity(n[, dtype]) 返回一个对角线为1,其他全部为0的ndarray数组 ones(shape[, dtype, order]) 返回一个全部为1的给定形状的ndarray ones_like(a[, dtype, order, subok]) 返回一个和给定数组相同形状的ndarray zeros(shape[, dtype, order]) 返回一个全部为0的给定形状的ndarray zeros_like(a[, dtype, order, subok]) 返回一个给定数组相同形状的ndarray full(shape, fill_value[, dtype, order]) 返回一个给定形状的使用具体参数填充的ndarray对象 full_like(a, fill_value[, dtype, order, subok]) 返回一个和给定数组形状相同的使用具体参数填充的ndarray对象

从已有的数据中创建ndarray

Function Describe array(object[, dtype, copy, order, subok, ndmin]) 创建一个ndarry对象,可以通过list、tuple等 asarray(a[, dtype, order]) 将传入参数转换为ndarray对象 asanyarray(a[, dtype, order]) 将传入对象转换为ndarray对象,但是ndarray的子类不转换 ascontiguousarray(a[, dtype]) 在内存中返回一个连续的ndarray对象. asmatrix(data[, dtype]) 将传入对象转换为矩阵 copy(a[, order]) 返回一个复制的ndarray对象 frombuffer(buffer[, dtype, count, offset]) 将buffer转换为一维ndarray fromfile(file[, dtype, count, sep]) 从文本文件或者二进制文件中创建ndarray对象 fromfunction(function, shape, **kwargs) 通过在各个坐标上执行函数来创建ndarray对象 fromiter(iterable, dtype[, count]) 从迭代器中创建一维ndarray对象 fromstring(string[, dtype, count, sep]) 在字符串中创建一个一维ndarray对象 loadtxt(fname[, dtype, comments, delimiter, …]) 载入数据

生成数值域(Numerical ranges)

Function Describe arange([start,] stop[, step,][, dtype]) 根据首项、末项、公差,生成等差数列 linspace(start, stop[, num, endpoint, …]) 根据首项、末项、数量,生成等差数列 logspace(start, stop[, num, endpoint, base, …]) 生成对数等差数列 geomspace(start, stop[, num, endpoint, dtype]) 生成指数等差数列 meshgrid(*xi, **kwargs) Return coordinate matrices from coordinate vectors. mgrid nd_grid instance which returns a dense multi-dimensional “meshgrid”. ogrid nd_grid instance which returns an open multi-dimensional “meshgrid”.

生成矩阵

Function Describe diag(v[,?k]) 抽取对角线元素,或者创建对角线ndarray对象 diagflat(v[,?k]) 从给定的一维数组作为对角线,创建一个二维数据 tri(N[,?M,?k,?dtype]) 创建在给定对角之下全为1的ndarray对象 tril(m[,?k]) 创建给定对角一下的ndarray对象 triu(m[,?k]) 创建给定对角以上的ndarray对象 vander(x[,?N,?increasing]) 创建一个范德蒙矩阵(Vandermonde matrix) mat(data[, dtype]) 将给定对象转换为矩阵对象 bmat(obj[, ldict, gdict]) 以字符串,嵌套序列或数组创建矩阵

索引

基本的索引语法是start:stop:step,start是开始的索引(从0开始)、stop是结束的索引、step是步长。

>>> x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> x[1:7:2]#索引从1到7位置,步长为2的值array([1, 3, 5])>>> x[-2:10]#负数代表从反方向索引array([8, 9])>>> x[-3:3:-1]array([7, 6, 5, 4])

ndarray属性

内存配置

Function Describe ndarray.flags 查看ndarray对象的内存配置信息 ndarray.shape 查看ndarray的形状 ndarray.strides Tuple of bytes to step in each dimension when traversing an array. ndarray.ndim 查看ndarray的维度 ndarray.data 查看ndarray开头所指向的python内存缓存区 ndarray.size 查看ndarray包含的元素个数 ndarray.itemsize 查看ndarray一个元素的二进制长度 ndarray.nbytes 查看ndarray总元素的二进制长度 ndarray.base 查看ndarray基础对象 ndarray.dtype 查看ndarray对象的数据类型 ndarray.T 返回ndarray的转置,如果ndarray是1维,则返回本身 ndarray.real 返回ndarray实数的部分 ndarray.imag 返回ndarray的虚数部分 ndarray.flat 一个1维的迭代器(先将多维数组按一维来排序) ndarray.ctypes An object to simplify the interaction of the array with the ctypes module

ndarray方法

转换

Function Describe ndarray.item(*args) 复制一个ndarray的对象并转换为python的标量 ndarray.tolist() 返回一个list对象 ndarray.itemset(*args) 在ndarray中插入一项,并覆盖掉原数据 ndarray.tostring([order]) 从ndarray对象中创建python二进制数据 ndarray.tobytes([order]) 从ndarray对象中创建python二进制数据 ndarray.tofile(fid[, sep, format]) 将数组转换为文本或者二进制数组 ndarray.dump(file) 将ndarray转换为pickle对象 ndarray.dumps() 将pickle转换为字符串 ndarray.astype(dtype[, order, casting, …]) 将ndarray转换为特定的数据类型 ndarray.byteswap(inplace) 更换ndarray对象的二进制元素 ndarray.copy([order]) 返回一个复制的ndarray对象 ndarray.view([dtype, type]) 具有相同数组的新观察 ndarray.getfield(dtype[, offset]) 返回给定的数据类型的部分 ndarray.setflags([write, align, uic]) 设置ndarray的标志 ndarray.fill(value) 使用一个标量来填充ndarray

形状操作

Function Describe ndarray.reshape(shape[, order]) 返回一个含有相同数据的不同形状的ndarray对象 ndarray.resize(new_shape[, refcheck]) 改变ndarray的形状和尺寸 ndarray.transpose(*axes) 返回一个转置矩阵 ndarray.swapaxes(axis1, axis2) 返回一个坐标轴1和坐标轴2相互转换的ndarray对象 ndarray.flatten([order]) 将ndarray转换为一维ndarray ndarray.ravel([order]) 和flatten相同 ndarray.squeeze([axis]) 移除某一维度

筛选项目和操作

Function Describe ndarray.take(indices[, axis, out, mode]) 根据索引选择项目并返回一个ndarray ndarray.put(indices, values[, mode]) 在ndarray对象中插入项目 ndarray.repeat(repeats[, axis]) 重复元素 ndarray.choose(choices[, out, mode]) 在ndarray中选择元素来创建新的ndarray ndarray.sort([axis, kind, order]) 排序 ndarray.argsort([axis, kind, order]) 返回排序索引 ndarray.partition(kth[, axis, kind, order]) 部分排序 ndarray.argpartition(kth[, axis, kind, order]) 返回部分排序索引 ndarray.searchsorted(v[, side, sorter]) 返回所要查询项的索引 ndarray.nonzero() 返回非零元素的索引 ndarray.compress(condition[, axis, out]) Return selected slices of this array along given axis. ndarray.diagonal([offset, axis1, axis2]) 返回对角线元素

统计运算

Function Describe ndarray.argmax([axis, out]) 返回最大值的索引 ndarray.min([axis, out, keepdims]) 返回最小值 ndarray.argmin([axis, out]) 返回最小值的索引 ndarray.ptp([axis, out]) 返回最大值减去最小值 ndarray.clip([min, max, out]) 返回给定区间的值 ndarray.conj() Complex-conjugate all elements. ndarray.round([decimals, out]) 四舍五入 ndarray.trace([offset, axis1, axis2, dtype, out]) 返回对角线元素的和 ndarray.sum([axis, dtype, out, keepdims]) 返回轴的和 ndarray.cumsum([axis, dtype, out]) 返回轴的累加和 ndarray.mean([axis, dtype, out, keepdims]) 返回轴的平均值 ndarray.var([axis, dtype, out, ddof, keepdims]) 返回轴的方差 ndarray.std([axis, dtype, out, ddof, keepdims]) 返回轴的标准差 ndarray.prod([axis, dtype, out, keepdims]) 返回轴的乘积 ndarray.cumprod([axis, dtype, out]) 返回轴的累乘积 ndarray.all([axis, out, keepdims]) 判断是否全为真 ndarray.any([axis, out, keepdims]) 判断是否含有真

算数运算,矩阵相乘和比较操作

比较操作

Function Describe ndarray.lt x.lt(y) <==> x ndarray.le x.le(y) <==> x<=y ndarray.gt x.gt(y) <==> x>y ndarray.ge x.ge(y) <==> x>=y ndarray.eq x.eq(y) <==> x==y ndarray.ne x.ne(y) <==> x!=y

算数运算

Function Describe ndarray.neg x.neg() <==> -x ndarray.pos x.pos() <==> +x ndarray.abs() <==>abs(x) ndarray.invert x.invert() <==> ~x ndarray.add x.add(y) <==> x+y ndarray.sub x.sub(y) <==> x-y ndarray.mul x.mul(y) <==> x*y ndarray.div x.div(y) <==> x/y ndarray.truediv x.truediv(y) <==> x/y ndarray.floordiv x.floordiv(y) <==> x//y ndarray.mod x.mod(y) <==> x%y ndarray.divmod(y) <==> divmod(x, y) ndarray.pow(y[, z]) <==> pow(x, y[, z]) ndarray.lshift x.lshift(y) <==> x< ndarray.rshift x.rshift(y) <==> x>>y ndarray.and x.and(y) <==> x&y ndarray.or x.or(y) <==> x ndarray.xor x.xor(y) <==> x^y

自运算

Function Describe ndarray.iadd x.iadd(y) <==> x+=y ndarray.isub x.isub(y) <==> x-=y ndarray.imul x.imul(y) <==> x*=y ndarray.idiv x.idiv(y) <==> x/=y ndarray.itruediv x.itruediv(y) <==> x/y ndarray.ifloordiv x.ifloordiv(y) <==> x//y ndarray.imod x.imod(y) <==> x%=y ndarray.ipow x.ipow(y) <==> x**=y ndarray.ilshift x.ilshift(y) <==> x<<=y ndarray.irshift x.irshift(y) <==> x>>=y ndarray.iand x.iand(y) <==> x&=y ndarray.ior x.ior(y) <==> x ndarray.ixor x.ixor(y) <==> x^=y
0 0