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之入门(三)序列
May 25 Python
python k-近邻算法实例分享
Jun 11 Python
kNN算法python实现和简单数字识别的方法
Nov 18 Python
Python的Urllib库的基本使用教程
Apr 30 Python
django如何自己创建一个中间件
Jul 24 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
在Python 的线程中运行协程的方法
Feb 24 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 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需登录的文件上传管理系统
2020/03/21 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
javascript中this关键字详解
2016/12/12 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
HTML5标签小集
2011/08/02 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
社区学习十八大感想
2014/01/22 职场文书
策划总监岗位职责
2014/02/16 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL
Python中tqdm的使用和例子
2022/09/23 Python