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常见数据结构详解
Jul 24 Python
Python常用随机数与随机字符串方法实例
Apr 09 Python
剖析Python的Twisted框架的核心特性
May 25 Python
浅析python中SQLAlchemy排序的一个坑
Feb 24 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
python使用turtle库绘制树
Jun 25 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php多重接口的实现方法
2015/06/20 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
Anaconda下安装mysql-python的包实例
2018/06/11 Python
python如何实现代码检查
2019/06/28 Python
python super()函数的基本使用
2020/09/10 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
企业指导教师评语
2014/04/28 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电