通用函數(shù)-元素級數(shù)組函數(shù)
通用函數(shù)(ufunc)是一種對ndarray執(zhí)行元素級運(yùn)算的函數(shù)柬唯。
一元ufunc
import numpy as np
arr = np.arange(-10,10,2)
arr
Out[5]: array([-10, -8, -6, -4, -2, 0, 2, 4, 6, 8])
np.abs(arr)#絕對值
Out[7]: array([10, 8, 6, 4, 2, 0, 2, 4, 6, 8])
np.fabs(arr)#絕對值
Out[8]: array([ 10., 8., 6., 4., 2., 0., 2., 4., 6., 8.])
1.abs东跪、fabs
計(jì)算整數(shù)子眶、浮點(diǎn)數(shù)或復(fù)數(shù)的絕對值膝捞。對于非復(fù)數(shù)值坦刀,可以使用更快的fabs。
arr1 = np.arange(16)
np.sqrt(arr1)#平方根蔬咬,即arr1 ** 0.5
Out[19]:
array([ 0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ,
3.16227766, 3.31662479, 3.46410162, 3.60555128, 3.74165739,
3.87298335])
np.square(arr1)#平方
Out[20]:
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144,
169, 196, 225], dtype=int32)
arr2 = np.exp(arr1)#各元素的指數(shù)e**x
Out[21]:
array([ 1.00000000e+00, 2.71828183e+00, 7.38905610e+00,
2.00855369e+01, 5.45981500e+01, 1.48413159e+02,
4.03428793e+02, 1.09663316e+03, 2.98095799e+03,
8.10308393e+03, 2.20264658e+04, 5.98741417e+04,
1.62754791e+05, 4.42413392e+05, 1.20260428e+06,
3.26901737e+06])
np.log(arr2) #自然對數(shù)(底數(shù)為e)
Out[24]:
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15.])
-
log10鲤遥,log2,log1p
林艘,其底數(shù)分別為盖奈,10,2;以及l(fā)og(1+ P) -
singn
計(jì)算個(gè)元素正負(fù)號狐援,1(正數(shù))钢坦,0(零),-1(負(fù)數(shù))
np.sign(arr) #正負(fù)號
Out[25]: array([-1, -1, -1, -1, -1, 0, 1, 1, 1, 1])
-
ceil
返回大于等于該值的最小整數(shù)咕村。 -
floor
返回小于等于該值的最大整數(shù)场钉。 -
rint
四舍五入,保留dtype懈涛。 -
modf
將數(shù)組的小數(shù)和整數(shù)部分一兩個(gè)獨(dú)立數(shù)組的形式返回逛万。
arr3 = np.random.randn(5)
arr3
Out[27]: array([ 0.0830739 , -2.18172821, 0.77026638, 0.70735324, -1.02929973])
np.ceil(arr3)#返回>=最小整數(shù)
Out[28]: array([ 1., -2., 1., 1., -1.])
np.floor(arr3)#返回<=最大整數(shù)
Out[29]: array([ 0., -3., 0., 0., -2.])
np.rint(arr3)#四舍五入
Out[30]: array([ 0., -2., 1., 1., -1.])
np.modf(arr3)#拆分整數(shù)和小數(shù)
Out[31]:
(array([ 0.0830739 , -0.18172821, 0.77026638, 0.70735324, -0.02929973]),
array([ 0., -2., 0., 0., -1.]))
-
isnan
返回布爾型數(shù)組,表示哪些值是NaN(非數(shù)字)。 -
isfinite/isinf
返回布爾型數(shù)組宇植,表示哪些元素是有窮的(非inf得封,非NaN)或那些是無窮的。 -
cos,cosh,sin,sinh,tan,tanh
普通型和雙曲型三角函數(shù)指郁。 -
arccos,arccosh,arcsin,arcsinh,asrtan,arctanh
反三角函數(shù)忙上。 -
logical_not
計(jì)算個(gè)元素的not x的真值,相當(dāng)于-arr闲坎。
arr4 = np.arange(-10,10,2)
np.logical_not(arr4<=0)
Out[39]: array([False, False, False, False, False, False, True, True, True, True], dtype=bool)
二元ufunc
-
add
元素對應(yīng)相加疫粥。 -
subtract
第一個(gè)數(shù)組元素減去第二個(gè)的元素。 -
multiply
數(shù)組元素相乘腰懂。 -
divide,floor_divide
除法梗逮,或向下整除(丟棄余數(shù))。 -
power
第一個(gè)數(shù)組中的元素A绣溜,第二個(gè)數(shù)組中的元素B慷彤,返回A的B次方。
arr5 = np.arange(10)
arr6 = np.arange(10,20)
np.add(arr5,arr6) #相加
Out[44]: array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
np.subtract(arr6,arr5)#相減
Out[47]: array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10])
np.multiply(arr5,arr6)#對應(yīng)相乘
Out[48]: array([ 0, 11, 24, 39, 56, 75, 96, 119, 144, 171])
np.divide(arr5,arr6)#相除
Out[50]:
array([ 0. , 0.09090909, 0.16666667, 0.23076923, 0.28571429,
0.33333333, 0.375 , 0.41176471, 0.44444444, 0.47368421])
arr7 = np.arange(20,30)
np.floor_divide(arr7,arr6)#整除
Out[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)#次冪
Out[60]: array([ 1, 6, 49, 512, 6561], dtype=int32)
-
maximum,fmax
返回兩個(gè)數(shù)組中較大值組成的數(shù)組怖喻。fmax忽略NaN底哗。 -
minimum,fmin
同上。 -
mod
求模锚沸,即求余數(shù)跋选。 -
copysign
第二個(gè)數(shù)組的符號,復(fù)制給第一個(gè)數(shù)組哗蜈。
x = np.random.randn(5)
y = np.random.randn(5)
x
Out[65]: array([-1.34391461, 0.58819335, 0.19195261, -0.5660927 , 0.98594434])
y
Out[66]: array([-0.57704395, -0.40143752, -0.83931321, -0.38734544, 1.2436085 ])
np.maximum(x,y)#元素及最大值計(jì)算
Out[68]: array([-0.57704395, 0.58819335, 0.19195261, -0.38734544, 1.2436085 ])
np.minimum(x,y)#元素級最小值計(jì)算
Out[69]: array([-1.34391461, -0.40143752, -0.83931321, -0.5660927 , 0.98594434])
m = np.arange(1,5)
n = np.arange(6,10)
np.mod(n,m)#求模
Out[83]: array([0, 1, 2, 1], dtype=int32)
np.copysign(y,x)#符號復(fù)制
Out[90]: array([-0.57704395, 0.40143752, 0.83931321, -0.38734544, 1.2436085 ])
-
greater,greater_equal,less,less_equal,equal,not_euqal
元素級比較運(yùn)算野建,最終產(chǎn)生布爾型數(shù)組,相當(dāng)于>,>=,<,<=,==,!=恬叹。 -
logical_and,logical_or,logical_xor
元素級真值運(yùn)算,相當(dāng)于&同眯,|绽昼,^。
In [2]: x = np.arange(6)
In [3]: t = np.arange(1,13,2)
In [7]: np.greater(x,t)
Out[7]: array([False, False, False, False, False, False], dtype=bool)
In [8]: np.less_equal(x,t)
Out[8]: array([ True, True, True, True, True, True], dtype=bool)
In [10]: np.logical_and(x > 0,t <0)
Out[10]: array([False, False, False, False, False, False], dtype=bool)