通用函数也可以称为 ufunc, 是一种在 ndarray 数据中进行逐元素操作的函数。某些简单函数接受了一个或者多个标量数值,并产生一个或多个标量结果,而通用函数就是对这些简单函数的向量化封装。
有很多 ufunc 是简单的逐元素转换,比如 sqrt 和 exp 函数:
import numpy as np
arr = np.arange(10)
print(arr)
print('-----------')
print(np.sqrt(arr))
print('-----------')
print(np.exp(arr)) #计算每个元素的自然指数值e的x次。
[0 1 2 3 4 5 6 7 8 9]
-----------
[0. 1. 1.41421356 1.73205081 2. 2.23606798
2.44948974 2.64575131 2.82842712 3. ]
-----------
[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]
这些就是所谓的一元通用函数。
介绍一下二元通用函数:比如 add 和 maximum 则会接受两个数组并返回一个数组结尾结果,所以叫做二元通用函数。
x = np.random.randn(8)
y = np.random.randn(8)
print(x)
print('--------')
print(y)
print('--------')
print(np.maximum(x ,y)) #对位比较大小,取大的,生成新的数组返回
[-0.51129588 0.78359254 -0.46670919 0.11893378 1.92495672 2.80372238
0.21499435 1.54663201]
--------
[ 1.09194406 0.42875348 0.26144712 0.45502432 1.94673371 0.03297522
-0.05771754 -0.70162544]
--------
[1.09194406 0.78359254 0.26144712 0.45502432 1.94673371 2.80372238
0.21499435 1.54663201]
多的栗子就不举了。