通用函数-元素级数组函数 通用函数( f nc)是一种对ndarray执行元素级运算的函数. 一元 f nc import n mpy as np arr = np.arange(-10,10,2) arr o t[5]: array([-10, -8, -6, -4, -2, 0, 2, 4, 6, 8]) np.abs(arr)#绝对值 o t[7]: array([10, 8, 6, 4, 2, 0, 2, 4, 6, 8]) np.fabs(arr)#绝对值 o t[8]: array([ 10., 8., 6., 4., 2., 0., 2., 4., 6., 8.]) 1.abs,fabs计算整数,浮点数或复数的绝对值.对于非复数值,可以使用更快的fabs. arr1 = np.arange(16) np.sqrt(arr1)#平方根,即arr1 ** 0.5 o t[19]: array([ 0. , 1. , 1., 1., 2. , 2., 2., 2., 2., 3. , 3., 3., 3., 3., 3., 3.]) np.sq are(arr1)#平方 o t[20]: array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225], dtype=int32) arr2 = np.exp(arr1)#各元素的指数e**x o t[21]: array([ 1.e+00, 2.e+00, 7.e+00, 2.00e+01, 5.e+01, 1.e+02, 4.0e+02, 1.0e+03, 2.e+03, 8.e+03, 2.e+04, 5.e+04, 1.e+05, 4.e+05, 1.e+06, 3.e+06]) np.log(arr2) #自然对数(底数为e) o t[24]: array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15.]) log10,log2,log1p,其底数分别为,10,2;以及log(1+ p) singn 计算个元素正负号,1(正数),0(零),-1(负数) np.sign(arr) #正负号 o t[25]: array([-1, -1, -1, -1, -1, 0, 1, 1, 1, 1]) ceil返回大于等于该值的最小整数. floor 返回小于等于该值的最大整数. rint四舍五入,保留dtype. modf将数组的小数和整数部分一两个独立数组的形式返回. arr3 = np.random.randn(5) arr3 o t[27]: array([ 0.0 , -2., 0., 0., -1.0]) np.ceil(arr3)#返回=最小整数 o t[28]: array([ 1., -2., 1., 1., -1.]) np.floor(arr3)#返回=最大整数 o t[29]: array([ 0., -3., 0., 0., -2.]) np.rint(arr3)#四舍五入 o t[30]: array([ 0., -2., 1., 1., -1.]) np.modf(arr3)#拆分整数和小数 o t[31]: (array([ 0.0 , -0., 0., 0., -0.0]), array([ 0., -2., 0., 0., -1.])) isnan返回布尔型数组,表示哪些值是nan(非数字). isfiniteisinf返回布尔型数组,表示哪些元素是有穷的(非inf,非nan)或那些是无穷的. cos,cosh,sin,sinh,tan,tanh普通型和双曲型三角函数. arccos,arccosh,arcsin,arcsinh,asrtan,arctanh反三角函数. logical_not计算个元素的not x的真值,相当于-arr. arr4 = np.arange(-10,10,2) np.logical_not(arr4=0) o t[39]: array([false, false, false, false, false, false, tr e, tr e, tr e, tr e], dtype=bool) 二元 f nc add 元素对应相加. s btract 第一个数组元素减去第二个的元素. m ltiply 数组元素相乘. divide,floor_divide 除法,或向下整除(丢弃余数). power第一个数组中的元素a,第二个数组中的元素b,返回a的b次方. arr5 = np.arange(10) arr6 = np.arange(10,20) np.add(arr5,arr6) #相加 o t[44]: array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28]) np.s btract(arr6,arr5)#相减 o t[47]: array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10]) np.m ltiply(arr5,arr6)#对应相乘 o t[48]: array([ 0, 11, 24, 39, 56, 75, 96, 119, 144, 171]) np.divide(arr5,arr6)#相除 o t[50]: array([ 0. , 0.0, 0., 0., 0., 0., 0.375 , 0., 0., 0.]) arr7 = np.arange(20,30) np.floor_divide(arr7,arr6)#整除 o t[54]: array([2, 1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int32) arr8 = np.arange(5) arr9 = np.arange(5,10) np.power(arr9,arr8)#次幂 o t[60]: array([ 1, 6, 49, 512, 6561], dtype=int32) maxim m,fmax返回两个数组中较大值组成的数组.fmax忽略nan. minim m,fmin同上. mod求模,即求余数. copysign第二个数组的符号,复制给第一个数组. x = np.random.randn(5) y = np.random.randn(5) x o t[65]: array([-1., 0., 0., -0. , 0.]) y o t[66]: array([-0., -0., -0., -0., 1. ]) np.maxim m(x,y)#元素及最大值计算 o t[68]: array([-0., 0., 0., -0., 1. ]) np.minim m(x,y)#元素级最小值计算 o t[69]: array([-1., -0., -0., -0. , 0.]) m = np.arange(1,5) n = np.arange(6,10) np.mod(n,m)#求模 o t[83]: array([0, 1, 2, 1], dtype=int32) np.copysign(y,x)#符号复制 o t[90]: array([-0., 0., 0., -0., 1. ]) greater,greater_eq al,less,less_eq al,eq al,not_e qal元素级比较运算,最终产生布尔型数组,相当于,=,,=,==,!=. logical_and,logical_or,logical_xor元素级真值运算,相当于&,|,^.