numpy中的快速的元素级数组函数
一元(unary)ufunc
对于数组中的每一个元素,都将元素代入函数,将得到的结果放回到原来的位置
>>> import numpy as np
>>> arr=np.arange(10)
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.sqrt(arr)# 开方
array([0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ])
>>> np.exp(arr)# e的n次方
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])
>>>
二元(binary)ufunc
取x和y之中对应位置的最大值
>>> x=np.random.randn(8)
>>> y=np.random.randn(8)
>>> x
array([ 0.15753027, 1.24668807, -0.26609702, 1.00292598, 0.49230071,
-1.6626497 , -0.35986389, 0.28558569])
>>> y
array([-0.44082009, 2.26042214, 0.95233366, -1.01650424, -0.35827745,
-0.21205099, 0.06795023, -1.2609774 ])
>>> np.maximum(x,y)
array([ 0.15753027, 2.26042214, 0.95233366, 1.00292598, 0.49230071,
-0.21205099, 0.06795023, 0.28558569])
返回多个数组的ufunc
分别获取小数部分和整数部分
>>> arr=np.random.randn(7)*5
>>> arr
array([-15.75240096, 0.4995332 , -6.53116402, 4.76986453,
0.90669531, 2.74661109, -1.29104246])
>>> remainder,whole_part=np.modf(arr)
>>> remainder
array([-0.75240096, 0.4995332 , -0.53116402, 0.76986453, 0.90669531,
0.74661109, -0.29104246])
>>> whole_part
array([-15., 0., -6., 4., 0., 2., -1.])