简介
- 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位置