Python笔记:Numpy之通用函数

通用函数(ufunc)

通用函数是一种对ndarray中的数据执行元素级运算的函数。

一元ufunc,接受一个数组的通用函数

arr = np.arange(10)

np.abs(arr)             #计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs
np.sqrt(arr)            #计算各元素的平方根,相当于arr ** 0.5
np.square(arr)          #计算各元素的平方,相当于arr ** 2
np.exp(arr)             #计算各元素的指数
np.log(arr)             #计算自然对数(底数为e),还有log10(底数为10的log)、log2(底数为2的log)、log1p(相当于log(1+x))
np.sign(arr)            #计算各元素的正负号:1(正数)、0(零)、-1(负数)
np.ceil(arr)            #计算各元素的ceiling值,即大于等于该值的最小整数
np.floor(arr)           #计算各元素的floor值,即小于等于该值的最大整数
np.rint(arr)            #将各元素四舍五入到最接近的整数,保留dtype
np.nodf(arr)            #将数组的小数和整数部分以两个独立数组的形式返回
np.isnan(arr)           #返回一个表示“哪些值是NaN(这不是一个数字)”的布尔型数组
np.isfinite(arr)        #返回一个表示“哪些元素是有穷的(非inf,非NaN)”的布尔型数组
np.isinf(arr)           #返回一个表示“哪些元素是无穷的”的布尔型数组
np.cos(arr)             #三角函数,还有cosh、sin、sinh、tan、tanh等普通型和双曲型三角函数
np.arccos(arr)          #反三角函数,还有arccosh、arcsin、arcsinh、arctan、arctanh等反三角函数
np.logical_not(arr)     #计算各元素not x的真值。相当于-arr

二元ufunc,接受两个数组的通用函数

arr = np.arange(10)

np.abs(arr)             #计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs
np.sqrt(arr)            #计算各元素的平方根,相当于arr ** 0.5
np.square(arr)          #计算各元素的平方,相当于arr ** 2
np.exp(arr)             #计算各元素的指数
np.log(arr)             #计算自然对数(底数为e),还有log10(底数为10的log)、log2(底数为2的log)、log1p(相当于log(1+x))
np.sign(arr)            #计算各元素的正负号:1(正数)、0(零)、-1(负数)
np.ceil(arr)            #计算各元素的ceiling值,即大于等于该值的最小整数
np.floor(arr)           #计算各元素的floor值,即小于等于该值的最大整数
np.rint(arr)            #将各元素四舍五入到最接近的整数,保留dtype
np.nodf(arr)            #将数组的小数和整数部分以两个独立数组的形式返回
np.isnan(arr)           #返回一个表示“哪些值是NaN(这不是一个数字)”的布尔型数组
np.isfinite(arr)        #返回一个表示“哪些元素是有穷的(非inf,非NaN)”的布尔型数组
np.isinf(arr)           #返回一个表示“哪些元素是无穷的”的布尔型数组
np.cos(arr)             #三角函数,还有cosh、sin、sinh、tan、tanh等普通型和双曲型三角函数
np.arccos(arr)          #反三角函数,还有arccosh、arcsin、arcsinh、arctan、arctanh等反三角函数
np.logical_not(arr)     #计算各元素not x的真值。相当于-arr

np.add(arr,arr)             #将数组中对应的元素相加
np.subtract(arr,arr)        #从第一个数组中减去第二个数组中的元素
np.multiply(arr,arr)        #数组元素相乘
np.divide(arr,arr)          #除法
np.floor_divide(arr,arr)    #向下圆整除法
np.power(arr,arr)           #对第一个数组中的元素A,根据第二个数组中的相应元素B,计算A^B
np.maximum(arr,arr)         #元素级的最大值计算。
np.fmax(arr,arr)            #元素级的最大值计算,忽略NAN。
np.minimum(arr,arr)         #元素级的最小值计算。
np.fmix(arr,arr)            #元素级的最小值计算,忽略NAN。
np.mod(arr,arr)             #元素级的求模计算(除法的余数)
np.copysign(arr,arr)        #将第二个数组中的值的符号复制给第一个数组中的值。

#执行元素级的比较运算,最终产生布尔型数组。相当于运算符>、>=、<、<=、==、!=
np.greater(arr,arr)
np.greater_equal(arr,arr)
np.less(arr,arr)
np.less_equal(arr,arr)
np.equal(arr,arr)
np.not_equal(arr,arr)

#执行元素级的真值逻辑运算。相当于运算符&、|、^(与或异)
np.logical_and(arr,arr)
np.logical_or(arr,arr)
np.logical_xor(arr,arr)

通用函数可以接受out选项参数,可以指定结果输出的对象

指定结果输出的对象长度必须与参与计算的数组长度一致。

#自动生成三个长度为10的包含随机数的ndarray数组
arr1 = np.random.randint(10, size=(10)) arr2 = np.random.randint(10, size=(10)) arr3 = np.random.randint(10, size=(10)) #将结果赋值给arr1,相当于原地操作,也可以赋值给arr2 np.add(arr1, arr2 , out=arr1) #将结果赋值给arr3 np.add(arr1, arr2 , out=arr3)
posted @ 2021-07-07 17:00  游虚子  阅读(525)  评论(0)    收藏  举报