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数组。
numpy库不具有的功能有除np.array之外,还有⼀些函数也可以新建数组。
⽐如,zero和ones分别可以创建指定长度或形状的全0或全1数组。
empty可以⽤来创建⼀个没有任何具体指的数组。
要⽤这些⽅法创建多维数组,只需要传⼊⼀个表⽰形状的元组即可:
arange是Python内置函数range的数组版:
以下是⼀些数组创建函数。
由于NumPy关注的是数值计算
因此,如果没有特别指定,数据类型基本都是float64(浮点数)。
通过astype转变⼀个数组的dtype
如果将浮点数转换成整数,则⼩数部分将会被截除。
如果某字符串数组表⽰的全是数字,也可以⽤astype将其转换为数值形式。
调⽤astype总会创建⼀个新的数组(⼀个数据的备份),即使新的dtype与旧的dtype相同。