Python numpy多维数组实现原理详解
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。今天就针对多维数组展开来写博客numpy其一部分功能如下:
1.ndarray,是具有矢量算术运算且节省空间的多维数组。
2.可以用于对整组的数据快速进行运算的辨准数学函数。
3.能够用于读写磁盘数据的工具以及用于操作系统内存映射的工具。
NumPy它本身其实没有提供很高级别的数据分析功能,NumPy之于数值计算特别重要的原因之一,就是因为它能够高效的处理大数组的数据。这是因为:
1.NumPy是在一个连续的内存块中存储数据,独立于其他的Python内置对象。
2.NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。
NumPy的ndarray:一种多维数组对象
对数组进行数学运算
可以看到data的值实际是没有改变的,输出的结果只是临时结果而已。
ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。
每个数组都有一个shape(形状)和一个dtype(数据类型)。
查看ndarray的shape和dtype:
创建ndarray
创建数组最简单的办法就是使用array函数。
它接受一切序列型的对象(包括其它数组),然后产生一个新的含有传入数据的NumPy数组。
除np.array之外,还有一些函数也可以新建数组。
比如,zero和ones分别可以创建指定长度或形状的全0或全1数组。
empty可以用来创建一个没有任何具体指的数组。
要用这些方法创建多维数组,只需要传入一个表示形状的元组即可:
arange是Python内置函数range的数组版:
以下是一些数组创建函数。
由于NumPy关注的是数值计算
因此,如果没有特别指定,数据类型基本都是float64(浮点数)。
通过astype转变一个数组的dtype
如果将浮点数转换成整数,则小数部分将会被截除。
如果某字符串数组表示的全是数字,也可以用astype将其转换为数值形式。
调用astype总会创建一个新的数组(一个数据的备份),即使新的dtype与旧的dtype相同。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇:python opencv 检测移动物体并截图保存实例