Python numpy多维数组实现原理详解


Posted in Python onMarch 10, 2020

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。今天就针对多维数组展开来写博客numpy其一部分功能如下:

1.ndarray,是具有矢量算术运算且节省空间的多维数组。

2.可以用于对整组的数据快速进行运算的辨准数学函数。

3.能够用于读写磁盘数据的工具以及用于操作系统内存映射的工具。

NumPy它本身其实没有提供很高级别的数据分析功能,NumPy之于数值计算特别重要的原因之一,就是因为它能够高效的处理大数组的数据。这是因为:

1.NumPy是在一个连续的内存块中存储数据,独立于其他的Python内置对象。

2.NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。

NumPy的ndarray:一种多维数组对象

对数组进行数学运算

Python numpy多维数组实现原理详解

可以看到data的值实际是没有改变的,输出的结果只是临时结果而已。

ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。

每个数组都有一个shape(形状)和一个dtype(数据类型)。

查看ndarray的shape和dtype:

Python numpy多维数组实现原理详解

创建ndarray

创建数组最简单的办法就是使用array函数。

它接受一切序列型的对象(包括其它数组),然后产生一个新的含有传入数据的NumPy数组。

Python numpy多维数组实现原理详解

除np.array之外,还有一些函数也可以新建数组。

比如,zero和ones分别可以创建指定长度或形状的全0或全1数组。

empty可以用来创建一个没有任何具体指的数组。

要用这些方法创建多维数组,只需要传入一个表示形状的元组即可:

Python numpy多维数组实现原理详解

arange是Python内置函数range的数组版:

Python numpy多维数组实现原理详解

以下是一些数组创建函数。

由于NumPy关注的是数值计算

因此,如果没有特别指定,数据类型基本都是float64(浮点数)。

Python numpy多维数组实现原理详解

通过astype转变一个数组的dtype

如果将浮点数转换成整数,则小数部分将会被截除。

如果某字符串数组表示的全是数字,也可以用astype将其转换为数值形式。

调用astype总会创建一个新的数组(一个数据的备份),即使新的dtype与旧的dtype相同。

Python numpy多维数组实现原理详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
初步探究Python程序的执行原理
Apr 11 Python
python使用psutil模块获取系统状态
Aug 27 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
Python实现的排列组合计算操作示例
Oct 13 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
python for循环remove同一个list过程解析
Aug 14 Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
python字典key不能是可以是啥类型
Aug 04 Python
python中实现词云图的示例
Dec 19 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 Python
python中使用you-get库批量在线下载bilibili视频的教程
Mar 10 #Python
Python字符串hashlib加密模块使用案例
Mar 10 #Python
Python中求对数方法总结
Mar 10 #Python
Python标准库shutil模块使用方法解析
Mar 10 #Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 #Python
Python 生成VOC格式的标签实例
Mar 10 #Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 #Python
You might like
php自动跳转中英文页面
2008/07/29 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
php 一元分词算法
2009/11/30 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
php命令行写shell实例详解
2018/07/19 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
python 图像平移和旋转的实例
2019/01/10 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
中学门卫岗位职责
2013/12/26 职场文书
项目合作计划书
2014/01/09 职场文书
物流业务员岗位职责
2014/02/08 职场文书
企业节能减排实施方案
2014/03/19 职场文书
小班幼儿评语大全
2014/04/30 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
民主评议党员个人总结
2015/02/13 职场文书
Python语言内置数据类型
2022/02/24 Python