数据科学三件套:Numpy + Pandas + Matplotilb
numpy概述
如何存储数据:以数组为基础的数据存储形式
数据运算:以数组为基础的数据运算和操作
Numpy中的数据存储形式:一维数组,二维数组,三维数组
Numpy中数据类型:
bool_:布尔值,用一个字节存储 |
complex_:complex128 complex64:复数,两个32位浮点数表示 complex128:复数,由两个64位浮点数表示 |
int_:默认整型,通常是int64/int32 intc:整型,通常是int32/int64 intp:用作索引的整形,通常是int32/int64 int8/16/32/64:整形 uint8/16/32/64:无符号整形 |
float_:float64的简写 float16:半精度浮点型,1bit符号,5bits指数,10bits尾数 float32:单精度浮点型,1bit符号,8bits指数,23bits尾数 float64:双精度浮点型,1bit符号,11bits指数,52bits尾数 |
'b':字节型,np.dtype('b') 'i':有符号整型,np.dtype('i4')就是一个np.int32类型 'u':无符号整型,np.dtype('u8')就是一个np.int64 'f':浮点型,np.dtype('f8') 'c':复数浮点型 'S':'a':字符串,np.dtype('S6') 'U':Unicode编码字符串,np.dtype('U')就是np.str_类型 'V':原生数据,比如空或者void,np.dtype('V')就是np.void |
安装环境:
# cmd 命令窗口
pip install numpy
# .py文件调用
import numpy as np
数组的属性:
- 维度(ndim):比如一维二维三维数据等
- 形状(shape):通常可以理解成数组各个维度的长度
- 长度(size):数组所存储的元素的总个数,对于二维数组size=行数×列数
- 数据类型(dtype):数组的数据类型(数组要求数据必须同一类型)
- itemsize:每个元素的字节长度,比如采用int64的类型,则就是8bytes
- Nbytes:nbytes = itemsize × size
数组创建:
- 特殊数组创建:
- empty:0.0000……(采用科学计数法)
- zeros:0
- ones:1
- eye:对角线为1,其余为0(对角矩阵)
- 普通数组创建
- randint:随机整数
- arange:有序列的整数
Numpy数组的索引:索引的含义和用法和Python中列表的索引含义和用法一致
Numpy数组的切片:
- 数组切片的含义和用法跟Python中列表的切片基本一致
- 数组切片的产生的是数据的视图而不是副本
Numpy数组的变形:
- 数组总长度必须一致(1行20列→2行10列→4行5列)
- newaixs可以增加维度
数组的拼接和分裂:
- 数组分裂是指把数组直接分开,拼接是把两个数组组合在一起的过程
- numpy.concatenate:可以指明拼接的轴
- numpy.split:默认沿着axis = 0进行分裂,可以指定轴向
Numpy通用函数:
+ | np.add |
- | np.subtract |
- | np.negative |
* | np.multiply |
/ | np.divide |
// | np.floor_divide |
** | np.power |
% | np.mod |
absolute(abs) | 绝对值 |
== | np.equal |
!= | np.not_equal |
< | np.less |
<= | np.less_equal |
> | np.greater |
>= | np.greater_equal |
掩码操作:通过组合使用比较类运算,可以快速提取出符合条件的数值,此类操作称为掩码操作。
聚合类操作函数:
np.sum | 和 |
np.pord | 积 |
np.mean | 平均数 |
np.std | 标准差 |
np.var | 方差 |
np.min | 最小值 |
np.max | 最大值 |
np.argin | 最小值的索引 |
np.argmax | 最大值的索引 |
np.median | 中位数 |
np.any | 是否至少存在一个为真的元素 |
np.all | 所有元素是否为真 |
Numpy排序函数:
- Numpy对数组的排序类似于python的sort,但有按索引排序的函数
- np.sort:排序后的结果
- np.argsort:显示排序的索引下标
数组的广播:
- 数组操作原则上要求shape一致
- 如果不一致必须先对齐再操作
- 不同shape的数组运算的时候会自动扩展成shape一致的过程叫做数组的广播
- 原则:
- 如果两个数组维度不相同,则小维度数组形状在最左边补上1
- 如果两数组的形状在任何一个维度上都不匹配,则数组的形状会沿着维度为1的维度扩展以匹配另外一个数组
- 如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,则异常