NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是一个一维数组,而这个一维数组中每个元素又是一个一维数组。所以这个一维数组就是NumPy中的轴(axes),而轴的数量——秩,就是数组的维数。

Numpy库中的矩阵模块为ndarray对象,有很多属性:T,data, dtype,flags,flat,imag,real,size,

itemsize,nbytes,ndim,shape,strides,ctypes,base等等。

>>> import numpy as np

>>> x=np.array([[1,2,3],[9,8,7],[6,5,4]])

>>> x.T #获得x的转置矩阵

array([[1, 9, 6],

[2, 8, 5],

[3, 7, 4]])

>>> print x.flags #返回数组内部的信息

C_CONTIGUOUS : True

F_CONTIGUOUS : False

OWNDATA : True

WRITEABLE : True

ALIGNED : True

UPDATEIFCOPY : False

>>> x.flat[2:6] #将数组变为1维数组,并获取其中的一部分数据

array([3, 9, 8, 7])

>>> x.flat = 4; x #将值赋给1维数组,再转化成有原有数组的大小形式

array([[4, 4, 4],

[4, 4, 4],

[4, 4, 4]])

>>> x

array([[4, 4, 4],

[4, 4, 4],

[4, 4, 4]])

ndarray.imag # 为复变函数中含有虚部的数组,如下:

>>> x = np.sqrt([2+3j, 5+0j]) # 创建一个复数

>>> x

array([ 1.67414923+0.89597748j, 2.23606798+0.j ])

>>> x.imag #获得复数的虚部

array([ 0.89597748, 0. ])

>>> x.real #获得复数的实部

array([ 1.67414923, 2.23606798])

>>> x=np.arange(10) #随机生成一个数组,并重新命名一个空间的数组

>>> x.reshape(2,5)

array([[0, 1, 2, 3, 4],

[5, 6, 7, 8, 9]])

>>> x.size #获得数组中元素的个数

10

>>> x.ndim #获得数组的维数

>>> x.shape #获得数组的(行数,列数)

(10,)

>>> y=x.reshape(5,2)

>>> y

array([[0, 1],

[2, 3],

[4, 5],

[6, 7],

[8, 9]])

>>> y.base #获得该数组基于另外一个对象数组而来,如下,y是根据x而来

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Ndarray对象的方法

ndarray.ptp(axis=None, out=None) : 返回数组的最大值—最小值或者某轴的最大值—最小值

ndarray.clip(a_min, a_max, out=None) : 小于最小值的元素赋值为最小值,大于最大值的元素变为最大值。

ndarray.all():如果所有元素都为真,那么返回真;否则返回假

ndarray.any():只要有一个元素为真则返回真

ndarray.swapaxes(axis1, axis2) : 交换两个轴的元素,如下

>>> z.swapaxes(0,1)

array([[2, 4, 6, 8],

[3, 5, 7, 9]])

下面为改变数组维度和大小的方法:

ndarray.reshape(shape[, order]) :返回重命名数组大小后的数组,不改变元素个数.

ndarray.resize(new_shape[, refcheck]) :改变数组的大小(可以改变数组中元素个数).

ndarray.transpose(*axes) :返回矩阵的转置矩阵

ndarray.swapaxes(axis1, axis2) : 交换两个轴的元素后的矩阵.

ndarray.flatten([order]) : 复制一个一维的array出来.

ndarray.ravel([order]) :返回为展平后的一维数组.

ndarray.squeeze([axis]) :移除长度为1的轴。

ndarray.tolist():将数组转化为列表

ndarray.take(indices, axis=None, out=None, mode='raise'):获得数组的指定索引的数据,如:

>>> a=np.arange(12).reshape(3,4)

>>> a

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

>>> a.take([1,3],axis=1) #提取1,3列的数据

array([[ 1, 3],

[ 5, 7],

[ 9, 11]])

numpy.put(a, ind, v, mode='raise'):用v的值替换数组a中的ind(索引)的值。Mode可以为raise/wrap/clip。Clip:如果给定的ind超过了数组的大小,那么替换最后一个元素。

numpy.repeat(a, repeats, axis=None):重复数组的元素,如:

>>> x = np.array([[1,2],[3,4]])

>>> np.repeat(x, 2)

array([1, 1, 2, 2, 3, 3, 4, 4])

>>> np.repeat(x, 3, axis=1)

array([[1, 1, 1, 2, 2, 2],

[3, 3, 3, 4, 4, 4]])

>>> np.repeat(x, [1, 2], axis=0)

array([[1, 2],

[3, 4],

[3, 4]])

numpy.tile(A, reps):根据给定的reps重复数组A,和repeat不同,repeat是重复元素,该方法是重复数组。

ndarray.var(axis=None, dtype=None, out=None, ddof=0):返回数组的方差,沿指定的轴。

ndarray.std(axis=None, dtype=None, out=None, ddof=0):沿给定的轴返回数则的标准差

ndarray.prod(axis=None, dtype=None, out=None):返回指定轴的所有元素乘机

ndarray.cumprod(axis=None, dtype=None, out=None):返回指定轴的累积,如下:

>>> a

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

>>> a.cumprod(axis=1) #得到竖轴的累积

array([[ 0, 0, 0, 0],

[ 4, 20, 120, 840],

[ 8, 72, 720, 7920]])

ndarray.mean(axis=None, dtype=None, out=None):返回指定轴的数组元素均值

ndarray.cumsum(axis=None, dtype=None, out=None):返回指定轴的元素累计和。如:

>>> a

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

>>> a.cumsum(axis=1)

array([[ 0, 1, 3, 6],

[ 4, 9, 15, 22],

[ 8, 17, 27, 38]])

ndarray.sum(axis=None, dtype=None, out=None):返回指定轴所有元素的和

ndarray.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None):返回沿对角线的数组元素之和

ndarray.round(decimals=0, out=None):将数组中的元素按指定的精度进行四舍五入,如下:

>>> np.around([0.37, 1.64])

array([ 0., 2.])

>>> np.around([0.37, 1.64], decimals=1)

array([ 0.4, 1.6])

>>> np.around([.5, 1.5, 2.5, 3.5, 4.5]) # rounds to nearest even value

array([ 0., 2., 2., 4., 4.])

>>> np.around([1,2,3,11], decimals=1) # ndarray of ints is returned

array([ 1, 2, 3, 11])

>>> np.around([1,2,3,11], decimals=-1)

array([ 0, 0, 0, 10])

ndarray.conj():返回所有复数元素的共轭复数,如:

>>> b=np.array([[1+2j,3+0j],[3+4j,7+5j]])

>>> b

array([[ 1.+2.j, 3.+0.j],

[ 3.+4.j, 7.+5.j]])

>>> b.conj()

array([[ 1.-2.j, 3.-0.j],

[ 3.-4.j, 7.-5.j]])

ndarray.argmin(axis=None, out=None):返回指定轴最小元素的索引。

ndarray.min(axis=None, out=None):返回指定轴的最小值

ndarray.argmax(axis=None, out=None):返回指定轴的最大元素索引值

ndarray.diagonal(offset=0, axis1=0, axis2=1):返回对角线的所有元素。

ndarray.compress(condition, axis=None, out=None):返回指定轴上条件下的切片。

ndarray.nonzero():返回非零元素的索引

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: numpy中的ndarray方法和属性详解

本文地址: http://www.cppcns.com/jiaoben/python/260923.html

python中文读音ndarray-numpy中的ndarray方法和属性详解相关推荐

  1. python 数列筛选_对numpy中的数组条件筛选功能详解

    在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...

  2. python中transpose函数_对numpy中的transpose和swapaxes函数详解

    transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: `arr=np.arange(16).reshape(( ...

  3. python中average什么意思_在Python3 numpy中mean和average的区别详解

    mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的.指定权重后,average可以计算一维的加权平均值. 具体如下: import numpy as np ...

  4. 关于numpy中eye和identity的区别详解

    https://www.jb51.net/article/175386.htm np.identity(n, dtype=None) np.eye(N, M=None, k=0, dtype=< ...

  5. python format函数实例_python中强大的format函数实例详解

    python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...

  6. python virtualenv conda_在vscode中启动conda虚拟环境的思路详解

    问题:cudatoolkit cudnn 通过conda 虚拟环境安装,先前已经使用virtualenv安装tf,需要在conda虚拟环境中启动外部python虚拟环境 思路:conda prompt ...

  7. python中文读音ndarray-Python Numpy 控制台完全输出ndarray的实现

    如下所示: import numpy as np np.set_printoptions(threshold=np.nan) print(ndarray) 当ndarray里面的存放的数据维度过大时, ...

  8. numpy中的ndarray方法和属性详解

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  9. python中布尔类型是特殊的_Python中的特殊方法以及应用详解

    前言 Python 中的特殊方法主要是为了被解释器调用的,因此应该尽量使用 len(my_object) 而不是 my_object.__len__() 这种写法.在执行 len(my_object) ...

最新文章

  1. 关于CSW和Bitcoin SV,我们不妨看一下局外人的观点
  2. Linux Shell脚本编程基础(11)
  3. git统计每个人的代码行数_项目出了bug如何甩锅?使用这个Git工具帮你找到元凶...
  4. 字符串转换整形数,结构体数组排序
  5. Win10最详细tensorflow-GPU环境的安装(安装anaconda、CUDA、CUDANN)
  6. IoT:电子密本ECB和DES模式详解
  7. Jsoncpp 使用方法大全
  8. 易了千明之易语言套装视频教程第四套辅助制作
  9. 云和恩墨大讲堂 - Oracle RAC系列课程强势来袭
  10. 在开发中如何正确的应对系统故障
  11. 学计算机基础知识的app,电脑基础知识零基础入门版-电脑基础知识APP手机大全v1.0 安卓版-007游戏网...
  12. 计算机找不到海信电视,如何设置海信电视投屏 海信电视投屏设置方法【详解】...
  13. Binary Exponential Backoff
  14. 20201114-三轴云台storm32 BGC HAKRC调试+
  15. 支付宝小程序开发练习,显示自定义二维码(四)
  16. Java秒杀系统实战系列~构建SpringBoot多模块项目
  17. 智能PID软件-AVEVA Diagrams创建图纸模板【图瓦软件出品】
  18. 元宇宙带来的游戏变革会是怎样的?
  19. 高级开发工程师如何快速晋升为架构师?高级开发工程师与架构师到底有啥区别?
  20. PCA Whitening ZCA Whitening

热门文章

  1. 百度地图在jsp页面加载大量轨迹导致地图卡顿
  2. 美国知名投资人愿意投资的30大创意方向
  3. Travelling (三进制+状压dp)
  4. iOS开发拓展篇——如何把项目托管到GitHub
  5. 软件工程之“个人附加题”
  6. Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析
  7. 夸克浏览器有没有linux,夸克浏览器怎么样?夸克浏览器使用说明
  8. python使用缩进来体现代码之间的逻辑关系-python使用缩进来体现代码之间的逻辑关系吗?...
  9. python程序实例电话本-零基础案例,别再错过了,动手Python做一个电话本小程序!...
  10. python基础教程书籍推荐-Python入门书籍推荐,我的清单