numpy中用很多常见的函数,如果使用的好,对我们的工作帮助是很大的,本篇我会拿其中一部分来做介绍
通用函数ufunc(universal function)
Numpy提供了许多通用函数,这些通用函数可以看做是以前通过Python计算的矢量化版本。
在numpy中提供了很多库,这部分和math中的库很像,可以简单理解为矢量预算的math
1. abs / fabs 取绝对值
2. ceil / floor 取整函数
3. exp 取平方函数,也可以使用** 来代替
4. log / log2 / log10 取对数函数
5. modf
返回数值的小数部分与整数部分
返回一个元组,元组中含有两个元素(ndarray数组类型)
前面的(索引为0)的元素包含的是小数值,后面的(索引为1)的元素包含的是整数值。
7. sin / sinh / cos / cosh 三角函数
8. sqrt 开方运算函数
统计函数*
这部分是重点,无论在深度学习还是机器学习中,都经常用到 比如常见的场景:在运算的过程中,先计算图像的均值,之后用图像的像素点减去三个通道的均值,之后在做运算 可以使用mean做运算,当然也可以使用 [0,0,0]或者[128,128,128]等
Numpy(或数组对象)具有如下常用的统计函数。
* mean / sum sum计算pr曲线的使用统计正确率是很常见的操作
* max / min 计算最大值和最小值
* argmax / argmin 返回最大值和最小值的索引,在实际应用过程中通常用作嵌套使用
* std / var 标准差和方差
* cumsum / cumprod 求累积和累积乘积
轴(axis)
可以指定axis参数来改变统计的轴。axis是一个非常重要的参数,关于数组的很多操作与运算,都涉及该参数。轴的取值为0,1,2……其中0表示最高的维度,1表示次高的维度,以此类推。同时,轴也可以为负值,表示倒数第n个维度,例如,-1表示最后(低)一个维度。在二维数组中,0表示沿着竖直方向进行操作,1表示沿着水平方向进行操作。在多维数组中,轴相对复杂一些,可以认为,是沿着轴所指定的下标变化的方向,进行操作。例如,如果轴是1,则根据第1个下标变化的方向上进行操作。
随机函数
这个方法很重要,在聚类过程中,如果计算所有簇之间的聚类计算量是巨大的,可以使用随机选择簇心,或者计算簇心来进行簇间操作
* np.random.rand 参数为多个参数共同决定
* np.random.random 与rand相同,但是形状通过一个参数(元组)指定。
* np.random.randn 常用于深度学习的构建神经网络产生随机正太分布的数值
* np.random.normal 可以自定义均值和标准差的标准正太分布
* np.random.randint 在给定起点和终点差生随机整数值
* np.random.seed
* np.random.shuffle
* np.random.uniform
连接与拆分函数
* np.concatenate 对多个数组按指定轴的方向进行连接。 通常应用为多个numpy文件的合并 例如特征文件
* np.vstack / np.hstack axis =0
* np.split / np.hsplit / np.vsplit axis = 1
其他函数(方法)
* any / all
* transpose(T) 矩阵转置
* swapaxis
* dot(@) 一种特殊的运算方法,表示相同位置做惩罚之后相加
* sort / np.sort
* unique
* np.where 搜索是否有包含的符合条件的值
* np.save / np.load 保存和加载numpy数据 默认为二进制
* np.savetxt / np.loadtxt 可以指定保存文件的格式
说明:
- sort可以指定排序的轴。
- save在保存数组时,如果没有指定扩展名,则自定补充.npy作为扩展名。