ufunc:全称通用函数(universal function),是一种能够对数组中所有元素进行操作的函数。
以 Numpy 数组作为输出,因此不需要对数组每个元素都操作,比 math 库中的函数操作效率
更高。
- 四则运算:加(+)、减(-)、乘(*)、除(/)、幂(**)。数组间的四则运算表示
对每个数组中的元素分别进行四则运算,所以形状必须相同。 - 比较运算:>、<、==、>=、<=、!=。比较运算返回的结果是一个布尔数组,每个元素
为每个数组对应元素的比较结果。 - 逻辑运算:np.any 函数表示逻辑“or”,np.all 函数表示逻辑“and”。运算结果返回布尔值。
Example:
ufunc 函数的广播机制:
广播(broadcasting)是指不同形状的数组之间执行算术运算的方式。需要遵循 4 个原则。
- 让所有输入数组都向其中 shape 最长的数组看齐,shape 中不足的部分都通过在前面加1 补齐。
- 输出数组的 shape 是输入数组 shape 的各个轴上的最大值。
- 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为 1 时,这个数组能够用来计算,否则出错。
- 当输入数组的某个轴的长度为 1 时,沿着此轴运算时都用此轴上的第一组值。
Example:
x=np.array([[1,3,5],[1,1,1],[2,2,2],[3,3,3]])
y=np.array([2,4,3])
print (x+y)
x=np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])
y=np.array([1,2,3,4]).reshape((4,1))
print (x+y)