简介

  1. Numpy是以矩阵为基础的数学计算模块,纯数学。
  2. Scipy基于Numpy,科学计算库,有一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。
  3. 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位置