NumPy ufunc和文件读写

Numpy的ufunc
  • Numpy的ufunc函数的介绍
    • ufunc是universal function(通用函数)的缩写,是一种对ndarray中的数据执行元素级的运算。既可以对单个数值操作,也可以对数组的每个元素进行操作的函数(支持广播运算)。
    • NumPy内置的许多ufunc函数都是在C语言实现的,因此它们的计算速度非常快,我们可以将其看做是简单的函数(接收一个或多个参数,返回一个或者多个返回值)。
  • 常用的元素计算函数
    • 一元ufunc
      • np.ceil (x): 求每个元素向上最接近的数
        • 参数
          • x: number 或 ndarra
      • np.floor(x): 求每个元素向下最接近的数
        • 参数
          • x:  number 或 array
      • np.rint(x): 将数组的每个元素四舍五入
        • 参数
          • x:number 或 array
      • np.negative(x):  将数组的每个元素取反
        • 参数
          • x:  number 或 array
      • np.abs(x):取数组每个元素的绝对值
        • 参数
          • x:  number 或 array
      • np.square(x):求数组每个元素的平方
        • 参数
          • x:  number 或 array
      • np.aqrt(x):求数组元素的平方根
        • 参数
          • x:  number 或 array
        • 注意:
          • 当被开平方的元素为负数的时候,返回的数值类型为sp.nan
      • np.sign(x):计算各元素的正负号, 返回1(正数)、0(零)、-1(负数)
        • 参数
          • x:   number 或 array
      • np.modf(x):将数组的小数和整数部分以两个独立数组的形式,并返回一个包含所有数组的元祖
        • 参数
          • x:  number 或 array
      • np.isnan(x): 判断元素是否为 NaN(Not a Number),返回bool
        • 参数
          • x:  number 或 array
        • 示例
    • 二元ufunc
      • np.add(x, y): 元素相加,x + y
        • 参数
          • x, y:    number 或 array(一维、或者相同维度多维)
      • np.subtract(x, y): 元素相减,x - y
        • 参数
          • x, y:  number 或 array(一维、或者相同维度多维
      • np.multiply(x, y): 元素相乘,x * y
        • 参数
          • x, y:  number 或array(一维、或者相同维度多维
      • np.divide(x, y): 元素相除,x / y,分母不能包含零
        • 参数
          • x, y:  number 或 array(一维、或者相同维度多维
      • np.floor_divide(x, y): 元素相除取整数商(丢弃余数),x // y
        • 参数
          • x, y:  number 或 array(一维、或者相同维度多维
      • np.mod(x, y): 元素求余数,x % y,分母不能包含零 
        • 参数
          • x, y:  number 或 array(一维、或者相同维度多维
      • np.power(x, y): 元素求次方,x ** y
        • 参数 
          • x, y:  number 或array(一维、或者相同维度多维
    • 三元ufunc
      • np.where(condition, x, y): 通过condition条件判断,条件满足返回x,否则返回y,最终返回一维数组
        • 参数
          • condition:  条件语句
          •  x , y :  number 或 与condition的bool数组维度个数和大小相等的数组
        • 示例
  • 常用的元素统计计算函数
    • 备注
      • 多维数组默认统计全部的数据,添加axis参数可以按指定轴心统计
      • 值为0则按列统计,值为1则按行统计,默认统计所有的数据
    • np.mean(x [, axis]):所有元素的平均值,返回的每个元素为浮点数
      • 参数
        • x:  array
    • np.sum(x [, axis]):所有元素的和
      • 参数
        • x: array
    • np.max(x [, axis]):所有元素的最大值
      • 参数:
        • x:  array
    • np.min(x [, axis]):所有元素的最小值
      • 参数
        • x: array
    • np.std(x [, axis]):所有元素的标准差,返回的每个元素为浮点数
      • 参数
        • x: array
    • np.var(x [, axis]):所有元素的方差,返回的每个元素为浮点数
      • 参数
        • x:  array
    • np.argmax(x [, axis]):最大值的下标索引值(会把多维数组当成一维数组来计算)
      • 参数
        • x:  array
    • np.argmin(x [, axis]):最小值的下标索引值(会把多维数组当成一维数组来计算)
      • 参数
        • x:  array
    • np.cumsum(x [, axis]):返回一个一维数组,每个元素都是之前所有元素的累加和
      • 参数
        • x:  array
    • np.cumprod(x [, axis]):返回一个一维数组,每个元素都是之前所有元素的 累乘积
      • 参数
        • x:  array
  • 条件判断函数
    • np.any(conditions , [ axis])     有一个元素满足指定条件,返回True,否则返回false
      • 参数
        • condition:  条件语句
        • axis:
          • 多维数组默认统计全部的数据,添加axis参数可以按指定轴心统计
          • 值为0则按列统计,值为1则按行统计,默认统计所有的数据
    • np.all(conditions , [ axis])        所有的元素满足指定条件,返回True,否则返回false
      • 参数
        • condition:  条件语句
        • axis:
          • 多维数组默认统计全部的数据,添加axis参数可以按指定轴心统计
          • 值为0则按列统计,值为1则按行统计,默认统计所有的数据
    • 示例
  •  增加、删除元素的函数(ndarray支持常用的增加和删除操作,以及数组的合并)
    • np.append(arr1, arr2):在arr1后面追加arr2的数据,并返回一维数组
      • 参数
        • arr1:number 或array,都当做一维数组处理,两数组维度可以不一致
        • arr2: number或array,都当做一维数组处理,两数组维度可以不一致
    • np.insert(arr1, index, arr2, [ axis]):在arr1的 index 位置增加 arr2 数据
      • 参数
        • arr1: number或array
        • index:执行插入数据的位置下标
        • arr2:number或列表或array, 插入array的时候只能是一维数组,需要注意和arr1的维度大小一致
      • 示例
    • np.delete(arr1, index, [ axis]):按axis的方向,删除arr1的指定下标位置元素
      • 参数
        • arr1: number或array
        • index:number或列表,代表删除元素的下标集合
        • axis:axis = 1,删除每一行的index下标列数据;axis =0,删除index对应多行数据
    • np.concatenate((arr1,arr2,...), [axis=0]):合并多个数组,数组的维度不改变
      • 参数
        • arrx:number 或array, 多个数组的维度个数保持一致
        • axis:axis = 1,按照行合并;axis =0,按照列合并,默认为列合并
      • 示例
  • 集合操作函数(ndarray的集合运算)
    • np.unique(x) : 对x里的数据去重,并返回有序的一维数组.
      • 参数:
        • x:array多维数组
    • np.intersect1d(x, y) :计算x和y中的公共元素、去重,并返回有序一维数组, x & y
      • 参数:
        • x, y:  array多维数组
    • np.union1d(x, y) :计算x和y的并集、去重,并返回有序一维数组. x | y
      • 参数
        • x, y:  array多维数组
    • np.setdiff1d(x, y): 集合的差,即元素在x中且不在y中,并去重,返回有序一维数组.  x - y, y - x
      • 参数
        • x, y: array多维数组
    • np.setxor1d(x, y): 对称差集,两个数组中互相不包含的元素,并去重,返回有序一维数组。x ^ y
      • 参数
        • x, y:  number或array多维数组
    • np.in1d(x, y) : 得到一个表示“x中的的每个元素是否包含于y”的布尔型数组[ bool ].
      • 参数
        • x:  number或array多维数据
        • y:  array多维数组
  • 排序函数(ndarray的数组排序函数)
  • ndarray.sort([axis])   在原数组上进行递增排序,改变原数组的元素顺序,不改变维度
    • 参数
      • axis:axis = 1,按照行排序;axis =0,按照列排序,默认对全部的数据进行排序
  • np.sort(ndarray, [axis])     返回递增排序排序后的新数组,改变元素顺序,不改变维度
    • 参数
      • axis:axis = 1,按照行排序;axis =0,按照列排序,默认对全部的数据进行排序
      • ndarray:多维数组对象
  • adarray.argsort()   对数组进行从小到达排序,并返回排序后的每个元素之前对应的索引
Numpy的文件读写
  • 不指定文件数据格式的保存和读取
    • np.save('file_name', arr)     保存数据到磁盘文件中,默认格式为.npy
      • 参数
        • file_path: 保存文件的文件名,不需要添加 文件后缀,默认格式为.npy
        • arr:将要被保存的数组
    • arr = np.load('file_name.npy')     读取文件内容,默认格式为.npy,返回一个包含文件中数据的Numpy数组对象
      • 参数
        • file_name: 读取的文件名,需要添加文件的格式
  • 指定文件数据格式的保存和读取(通常可以指定文件格式为csv等)
    • savetxt('file_name', arr, delimiter=',', fmt='%d')       将数据保存到磁盘文件里。
      • 参数:
        • filename: 保存文件的文件名,需要指定文件的后缀,例如.csv
        • arr: 将要被保存的数组
        • delimiter: 指定分隔符的类型,通常使用','
        • fmt:指定保存文件的数据类型,%d为数字
    • arr = np.genfromtxt('file_name', delimiter=',', dtype=np.unicode, usecols=[x, y, z])       将数据加载到普通的Numpy数组中
      • 参数:
        • filename: 读取文件的文件名,需要指定文件的后缀,例如.csv
        • delimiter: 指定分隔符的类型,通常使用','
        • dtype: 指定数据的读取产生数组的数据类型
        • usecols:指定读取文件中数据的哪几列
    • np.loadtxt()        将数据加载到普通的Numpy数组中,一般不常用

刘小恺(Kyle) wechat
如有疑问可联系博主