利用Python进行数据分析笔记-第四章Numpy

Numpy的ndarray:一种多维数组对象,其中的所有元素必须是相同类型的
nadrray的’+’,’-‘,’*’,’/’以及shape(表示数组维度的元组)和dtype(说明数组数据类型)的属性
利用Python进行数据分析笔记-第四章Numpy

利用Python进行数据分析笔记-第四章Numpy

创建ndarray

1.使用array(),传入序列型对象,产生含有传入数据的Numpy数组:
利用Python进行数据分析笔记-第四章Numpy
注意,除非显示说明,np.array会尝试为新建的数组推断一个较为合适的数据类型,保存在dtype对象中。

2.使用一些函数创建数组,如zeros,ones,empty,arange(不能传入元组,与range用法相同,只不过得到的为数组)等,传入参数为表示形状的元祖,数组维度与元组中元素个数相同:
利用Python进行数据分析笔记-第四章Numpy

常用数组创建函数(如果没有特别指定,数据类型基本都是float)
利用Python进行数据分析笔记-第四章Numpy

ndarray的数据类型

dtype是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息
利用Python进行数据分析笔记-第四章Numpy
利用Python进行数据分析笔记-第四章Numpy

通过ndarray的astype显示转换dtype
利用Python进行数据分析笔记-第四章Numpy
两点需要注意:
1.浮点数转换为整数会截断
2.如果为数字字符串,那么可以转换为数值形式
3.调用astype会创建出新数组(原始数据拷贝),即使新dtype跟老dtype一样也是这样

dtype的另外用法
用其他数组的dtype转换当前数组的类型
利用Python进行数据分析笔记-第四章Numpy

基本的索引和切片

利用Python进行数据分析笔记-第四章Numpy
注意:数组切片为原数组的视图,视图上的任何修改会直接反映到源数组上。由于Numpy的设计目的是处理大规模数据,过多的复制会产生性能和内存问题。

二维数组索引方式
利用Python进行数据分析笔记-第四章Numpy

切片索引
利用Python进行数据分析笔记-第四章Numpy

布尔型索引
利用Python进行数据分析笔记-第四章Numpy
注意:
可以使用逻辑运算符&和|,不能使用and和or

通过布尔型数组设置值
利用Python进行数据分析笔记-第四章Numpy

花式索引
使用数组索引访问行子集:
利用Python进行数据分析笔记-第四章Numpy

选取矩阵行列子集:
利用Python进行数据分析笔记-第四章Numpy

使用np.ix选取矩阵行列子集:
利用Python进行数据分析笔记-第四章Numpy

数组转置
arr.T

通用函数:快速的元素级数组函数

一元ufunc:
利用Python进行数据分析笔记-第四章Numpy

二元ufunc:
利用Python进行数据分析笔记-第四章Numpy

利用Python进行数据分析笔记-第四章Numpy

利用Python进行数据分析笔记-第四章Numpy

运用numpy.where()将条件逻辑表述为数组运算

利用Python进行数据分析笔记-第四章Numpy

利用Python进行数据分析笔记-第四章Numpy

数学和统计方法

利用Python进行数据分析笔记-第四章Numpy
注意:这些聚合函数既可以当做数组的实例方法调用,也可以numpy.xx()调用

利用Python进行数据分析笔记-第四章Numpy

用于布尔型数组的方法

计算正数的数量:
利用Python进行数据分析笔记-第四章Numpy

any()和all():
利用Python进行数据分析笔记-第四章Numpy

排序

利用Python进行数据分析笔记-第四章Numpy
注意:使用np.sort()返回数组副本,而通过arr.sort()则修改数组本身

利用sort()选取分位数:
利用Python进行数据分析笔记-第四章Numpy

唯一化以及其他的集合逻辑

使用np.unique()将一维数组唯一化并排序:
利用Python进行数据分析笔记-第四章Numpy

使用np.in1d()测试arr1中的元素是否在arr2中:
利用Python进行数据分析笔记-第四章Numpy

利用Python进行数据分析笔记-第四章Numpy

用于数组的文件输入输出

将数组以二进制格式保存到磁盘

np.save(),np.load()
利用Python进行数据分析笔记-第四章Numpy
图为保存数组后获得的npy文件
利用Python进行数据分析笔记-第四章Numpy

np.savez(),np.load(),通过键值对的方式批量存取数组
利用Python进行数据分析笔记-第四章Numpy

存取文本文件

np.loadtxt()
测试文件:
利用Python进行数据分析笔记-第四章Numpy
利用Python进行数据分析笔记-第四章Numpy

线性代数

np.dot(),矩阵乘法
利用Python进行数据分析笔记-第四章Numpy

二维数组和一维数组做点积得到一维数组:
利用Python进行数据分析笔记-第四章Numpy

利用Python进行数据分析笔记-第四章Numpy

随机数生成

np.random.normal()
利用Python进行数据分析笔记-第四章Numpy
可以看出,np.random.normal比Python原生的random.normalvariate快很多

利用Python进行数据分析笔记-第四章Numpy