numpy中的ndarray方法和属性详解


Posted in Python onMay 27, 2019

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():返回非零元素的索引

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

Python 相关文章推荐
python编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
python的re模块应用实例
Sep 26 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
python实现聚类算法原理
Feb 12 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
如何使用Pytorch搭建模型
Oct 26 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 Python
numpy.linspace函数具体使用详解
May 27 #Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 #Python
Django框架设置cookies与获取cookies操作详解
May 27 #Python
numpy下的flatten()函数用法详解
May 27 #Python
详解numpy的argmax的具体使用
May 27 #Python
numpy.random模块用法总结
May 27 #Python
Django框架自定义session处理操作示例
May 27 #Python
You might like
PHP静态类
2006/11/25 PHP
php类
2006/11/27 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
js格式化时间小结
2014/11/03 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
js实现导航跟随效果
2018/11/17 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
Python多线程原理与用法实例剖析
2019/01/22 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
用python写PDF转换器的实现
2020/10/29 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
工程技术员岗位职责
2014/03/02 职场文书
小学生优秀评语大全
2014/04/22 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
何玥事迹观后感
2015/06/16 职场文书
z-index不起作用
2021/03/31 HTML / CSS
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
Win11更新失败并提示0xc1900101
2022/04/19 数码科技