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实现可以断点续传和并发的ftp程序
Sep 13 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
python和ruby,我选谁?
Sep 13 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
详解基于django实现的webssh简单例子
Jul 17 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 Python
Python 内置函数速查表一览
Jun 02 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
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
JS日历 推荐
2006/12/03 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
django允许外部访问的实例讲解
2018/05/14 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
办理房产过户的委托书
2014/09/14 职场文书
毕业横幅标语
2014/10/08 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
行风评议整改报告
2014/11/06 职场文书
紧急通知
2015/04/17 职场文书
详解Python描述符的工作原理
2021/06/11 Python
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android