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中xrange与yield的用法实例分析
Dec 26 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
3分钟学会一个Python小技巧
Nov 23 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
基于Python函数和变量名解析
Jul 19 Python
对Django中内置的User模型实例详解
Aug 16 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
python破解同事的压缩包密码
Oct 14 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
对Session和Cookie的区分与解释
2007/03/16 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
PHP中16个高危函数整理
2019/09/19 PHP
一行代码告别document.getElementById
2012/06/01 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
pygame实现简易飞机大战
2018/09/11 Python
Django组件cookie与session的具体使用
2019/06/05 Python
基于Python函数和变量名解析
2019/07/19 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Python sys模块常用方法解析
2020/02/20 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
日语专业个人的求职信
2013/12/03 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
初中成绩单评语
2014/12/29 职场文书