ndarray对象

简介:

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)

FunctionDescribe
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

FunctionDescribe
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)

FunctionDescribe
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.
mgridnd_grid instance which returns a dense multi-dimensional “meshgrid”.
ogridnd_grid instance which returns an open multi-dimensional “meshgrid”.

生成矩阵

FunctionDescribe
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属性

内存配置

FunctionDescribe
ndarray.flags查看ndarray对象的内存配置信息
ndarray.shape查看ndarray的形状
ndarray.stridesTuple 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.ctypesAn object to simplify the interaction of the array with the ctypes module

ndarray方法

转换

FunctionDescribe
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

形状操作

FunctionDescribe
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])移除某一维度

筛选项目和操作

FunctionDescribe
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])返回对角线元素

统计运算

FunctionDescribe
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])判断是否含有真

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

比较操作

FunctionDescribe
ndarray.ltx.lt(y) <==> x
ndarray.lex.le(y) <==> x<=y
ndarray.gtx.gt(y) <==> x>y
ndarray.gex.ge(y) <==> x>=y
ndarray.eqx.eq(y) <==> x==y
ndarray.nex.ne(y) <==> x!=y

算数运算

FunctionDescribe
ndarray.negx.neg() <==> -x
ndarray.posx.pos() <==> +x
ndarray.abs()<==>abs(x)
ndarray.invertx.invert() <==> ~x
ndarray.addx.add(y) <==> x+y
ndarray.subx.sub(y) <==> x-y
ndarray.mulx.mul(y) <==> x*y
ndarray.divx.div(y) <==> x/y
ndarray.truedivx.truediv(y) <==> x/y
ndarray.floordivx.floordiv(y) <==> x//y
ndarray.modx.mod(y) <==> x%y
ndarray.divmod(y)<==> divmod(x, y)
ndarray.pow(y[, z])<==> pow(x, y[, z])
ndarray.lshiftx.lshift(y) <==> x<
ndarray.rshiftx.rshift(y) <==> x>>y
ndarray.andx.and(y) <==> x&y
ndarray.orx.or(y) <==> x
ndarray.xorx.xor(y) <==> x^y

自运算

FunctionDescribe
ndarray.iaddx.iadd(y) <==> x+=y
ndarray.isubx.isub(y) <==> x-=y
ndarray.imulx.imul(y) <==> x*=y
ndarray.idivx.idiv(y) <==> x/=y
ndarray.itruedivx.itruediv(y) <==> x/y
ndarray.ifloordivx.ifloordiv(y) <==> x//y
ndarray.imodx.imod(y) <==> x%=y
ndarray.ipowx.ipow(y) <==> x**=y
ndarray.ilshiftx.ilshift(y) <==> x<<=y
ndarray.irshiftx.irshift(y) <==> x>>=y
ndarray.iandx.iand(y) <==> x&=y
ndarray.iorx.ior(y) <==> x
ndarray.ixorx.ixor(y) <==> x^=y
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值