数组对象ndarray
数组属性:存储单一数据类型的多维数组
数组创建
numpy.array(object,dtype-None,copy-True,order-'K',subok-False,ndmin-0)
- 用reshape函数对原来创建的数组进行修改
- 用arange函数创建数组
list用range函数创建数组相比:
list(range(10))
np.arange(10)
- numpy还可以用linspace函数创建数组
前两个参数是没有默认值的,所以必须输进去
np.linspace(0,10,10,endpoint=False)#endpoint=False表示不取最后一个数
- logspace创建等比数列,根据切换base可改变比值,默认为10
np.logspace(0,10,10,endpoint=False,base=2)
- zeros函数创建全为0的数组
- eye函数创建单元矩阵
- diag函数创建对角线为指定数值的数组
- ones函数创建全为1的数组
数组数据类型
np.float32(a)#将数组中的元素为42的数据类型强制转换为float32
array创建数组是都是默认浮点型
生成随机数
- 无约束条件下生成随机数
- 生成服从均匀分布的随机数
最后参数是表明几个维度
- 生成服从正态分布的随机数
- 生成给定上下范围的随机数
random模块其他常用生成随机数函数
通过索引访问数组
变换数组的形态
1、展平数组
- 使用ravel函数展平数组(只有横向展平)
(即多维数组变成个一维数组)
arr.ravel()
- 使用flatten函数展平数组(可横向、纵向展平)
arr.flatten()#默认横向展开
arr.flatten(order=False)#纵向展开
2、组合和切割数组
- 组合数组
- 切割数组
矩阵与通用函数
创建与组合矩阵
- 创建矩阵
mat函数、matrix函数都可以创建矩阵
- 组合矩阵
bmat函数合成矩阵
矩阵的运算
数组的运算和矩阵的运算规则不同
数组对应位置互相运算,但是矩阵是按照矩阵的运算规则(即行与对应的列运算)
但如果数组用dot函数,即是用矩阵的运算规则进行运算
数组没有矩阵所特有的属性,所以不会有array(a).I这种调用方式
ufunc函数
通用函数,能够对数组中所有元素进行操作
- 广播机制
利用numpy进行统计分析
文件读写(二进制和文件列表形式)
files函数可以了解该文件下有几个数组
排序
- 直接排序:sort函数
更多情况下是面对一维数组的排序 - 间接排序:
去重和重复数据
第二课实操
见下一篇博文:数据分析第二课任务具体实现