Numpy 理解ndarray对象的示例代码


Posted in Python onApril 03, 2020

  numpy作为python科学计算的基础模块,支撑起了pandas、matplotlib等使用。其中,ndarray作为numpy的重要使用对象不得不研究理解一下。

  ndarray,存储单一数据类型的多维数组结构,在内存中连续存在,以行索引和列索引的方式标记数组中的每一个元素。采用预编译好的C语言代码,性能上的表现十分不错。

1、ndarray的数据结构

Numpy 理解ndarray对象的示例代码

2、ndarray的创建

numpy主要有以下几种方式创建数组。除此之外,其他过程也可能产生数组,比如:cv2.imread读取图片,返回数组。

np.array() # 传入类数组数据结构,list,tuple等,或者其他嵌套序列。返回的维度依据传入的数据而定
np.linspace() # 根据给定的间距生成等差序列,指定元素数量,返回一维数组
np.arange()# 根据给定的间距生成等差序列,指定步长。返回一维数组
np.ones() # 根据传入的shape,返回一个元素全是1的数组
np.zeros() # 根据传入的shape,返回一个元素全是0的数组
np.full() # 根据传入的shape和value,返回一个元素全是value的数组,比前面两个灵活
np.empty() # 根据传入的shape,返回一个元素全是随机化而不是空值的数组
np.genfromtxt() # 从文本文件读取生成一个数组

3、ndarray的抽象理解

先创建一个三个数组,一维、二维、三维。

arr1 = np.arange(3)
arr1
array([0, 1, 2])
---------------------------------------------------------
arr2 = np.arange(9).reshape(3,3)
arr2
array([[0, 1, 2],
    [3, 4, 5],
    [6, 7, 8]])
----------------------------------------------------------
arr3 = np.arange(27).reshape(3,3,3)
arr3
array([[[ 0, 1, 2],
    [ 3, 4, 5],
    [ 6, 7, 8]],

    [[ 9, 10, 11],
    [12, 13, 14],
    [15, 16, 17]],

    [[18, 19, 20],
    [21, 22, 23],
    [24, 25, 26]]])

在python中的arr结构如上所示。我们将其形象化表示出来,如下图。

一维数组只有一个维度,也叫rank,只有一个axis轴,axis=0。
二维数组有两个维度,有两个axis轴,axis=0和1。
三维数组有三个维度,有三个axis轴,axis=0、1、2。

Numpy 理解ndarray对象的示例代码

我们直接在三维上执行索引操作,来理解ndarray的排布。

arr3[1,2,1]
输出16

  索引[1,2,1]依次从高维到低维,从axis轴2到1到0,1指三维上的第2个元素,即上图中间的数组,是一个二维数组。2指二维上的第3个元素,是一个一维数组。1值一维上的第2个元素。也可以试着从轴方向去理解索引的原理。
可以自己操作一下下面索引代码,看看出结果。

arr3[3,3,2]

  不同维度的ndarray shape理解如下。可以通俗的认为是从点带面,再到块。

Numpy 理解ndarray对象的示例代码

4、ndarray的操作

  主要有索引、切片、过滤等,后续细谈。只要理解了ndarray,操作其实很简单。

Refer:
[1] https://danzhuibing.github.io/py_numpy_ndarray.html
[2] https://www.geeksforgeeks.org/numpy-ndarray/

到此这篇关于Numpy 理解ndarray对象的示例代码的文章就介绍到这了,更多相关Numpy ndarray对象内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python获取标准北京时间的方法
Mar 24 Python
在Python中使用列表生成式的教程
Apr 27 Python
Python可变参数函数用法实例
Jul 07 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
python实现停车管理系统
Nov 30 Python
Python Web版语音合成实例详解
Jul 16 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
python 操作hive pyhs2方式
Dec 21 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 Python
深入理解Pytorch微调torchvision模型
Nov 11 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 #Python
Django自定义列表 models字段显示方式
Apr 03 #Python
使用Django清空数据库并重新生成
Apr 03 #Python
Python基础类继承重写实现原理解析
Apr 03 #Python
Django实现列表页商品数据返回教程
Apr 03 #Python
Python第三方库的几种安装方式(小结)
Apr 03 #Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 #Python
You might like
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
python将人民币转换大写的脚本代码
2013/02/10 Python
Python实现的Kmeans++算法实例
2014/04/26 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
Python回调函数用法实例详解
2015/07/02 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python字符串常用方法
2018/06/14 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python实现3D地图可视化
2020/03/25 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
家居设计专业个人自荐信范文
2013/11/26 职场文书
老公爱的承诺书
2014/03/31 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
烈士陵园观后感
2015/06/08 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript