ufunc函数——通用函数
ufunc函数又称通用函数,是一种能够对数组中的所有元素进行操作的函数。其实,函数无非就是一种运算规则,小学学的加减乘除,中学学的矢量点乘、叉乘,大学学的群论、张量、射影几何、线性代数,无非就是根据规则进行计算,与规则对应的空间,比如欧几里得空间、线性空间、射影空间、曲面空间等,哈哈,扯远啦,现在进入正题,开干。
请记住,运算无非是根据规则的再组合。
掌握了规则,你就掌握了世界
数组四则运算
a = np.array([1, 2, 3])
b = np.array([2, 1, 3])
# 数组相加
c = a + b
# 数组相减
d = a - b
# 数组相乘
e = a*b
# 数组相除
f = a/b
# 数组幂运算
g = a**b
print(a,b,c,d,e,f,g,'\n'*2)
数组比较运算
# 小于运算
c = a < b
# 大于运算
d = a > b
# 等于运算
e = a == b
# 小于、等于运算
f = a <= b
# 大于、等于运算
g = a >= b
# 不等运算
h = a != b
数组逻辑运算
# and运算
i = np.all(a == b)
# or运算
j = np.any(a == b)
print(c,d,e,f,g,h,'\n'*2)
print(i,j)
ufunc函数的广播机制
# 广播是指不同形状的数组之间执行算数运算的方式
a = np.array([[1, 2, 3], [2, 1, 3], [1, 4, 3]])
b = np.array([2, 1, 3])
c = np.array([[2], [1], [3]])
d = a + b
e = a + c
print(a, '\n', b, '\n', c, '\n', d, '\n', e)
这个地方理解起来不是很直观,因此我画了示意图,如下图1、图2所示。其实,无非就是将其缺的地方按照下图方式补全,再进行计算。你可能会有疑问,形状不一样,还能运算?在矩阵里相加当然不能,因为自有矩阵规则约束,但是在Python里,规则发生了改变,与矩阵规则并不一样,因此可以计算。