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 16 Python
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
python杀死一个线程的方法
Sep 06 Python
json跨域调用python的方法详解
Jan 11 Python
pandas实现选取特定索引的行
Apr 20 Python
对Python中内置异常层次结构详解
Oct 18 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 Python
Django和Ueditor自定义存储上传文件的文件名
Feb 25 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
linux中nohup和后台运行进程查看及终止
Jun 24 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
与数据库连接
2006/10/09 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
Yii实现简单分页的方法
2016/04/29 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
法律专业实习鉴定
2013/12/22 职场文书
小饰品店的创业计划书范文
2013/12/28 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
学历公证书范本
2014/04/09 职场文书
公司建议书怎么写
2014/05/15 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
小学优秀学生评语
2014/12/29 职场文书
售房协议书范本
2015/08/11 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫