简介
- Numpy是以矩阵为基础的数学计算模块,纯数学。
 - Scipy基于Numpy,科学计算库,有一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。
 - Pandas提供了一套名为DataFrame的数据结构,比较契合统计分析中的表结构,并且提供了计算接口,可用Numpy或其它方式进行计算。
 
array()、asarray()
都可以将结构数据转化为ndarray。 当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。
argmax()、argsort()
- 按axis维度,取该维度上的最大值,返回的是array中最大值的索引。
 - 将数组按指定维度方向排序,返回的是array从小到大的索引。
 
ndim()、shape()、size()、dtype()、astype()
- ndim():查看array数组中轴的数量或维度的数量
 - shape:数组的维度
 - size :数组元素的总个数,相当于 .shape 中 n*m 的值
 - dtype():查看数组中数据类型
 - astype():转换数据类型
 
ravel()、flatten()、squeeze()
都有将多维数组转换为一维数组的功能。
- ravel():如果没有必要,不会产生源数据的副本
 - flatten():返回源数据的副本
 - squeeze():只能对维数为1的维度降维
 - 另外,reshape(-1)也可以“拉平”多维数组
 
stack()、hstack()、vstack()
- stack():数组堆叠。
 - hstack():水平(按列顺序)把数组给堆叠起来。
 - vstack():垂直(按照行顺序)的把数组给堆叠起来。
 
arange()、linspace()
- arange()类似于内置函数range(),通过指定开始值、终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值。
 - linspace()通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值。
 
where()、argwhere
- np.where(condition, x, y) 和 np.where(condition)
 条件满足则返回x,不满足则返回y 只有条件 (condition),没有x和y时,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。
- np.argwhere(a)
 返回:非0的数组元素的索引,其中a是待索引数组的条件。
random
- np.random.rand(x, y) 返回0~1随机值,数组大小为xy
 - np.random.uniform(x, y) 返回区间[x, y) 随机值
 - np.random.randn(x, y) 返回x*y大小数组,每个随机数遵循标准正态分布
 - np.random.randint(low, high, size) 返回[low, high)区间随机整数
 
isnan()
判断data中是否含有nan。
- np.isnan(data).sum() 找出nan的个数
 - np.where(np.isnan(data)) 定位nan位置
 
