形状相同
用例代码
a1 = np.array([[1,2,3],
[4,5,6]])
a2 = np.array([[1,2,3],
[4,5,6]])
print(np.power(a1,a2))
输出
[[ 1 4 27]
[ 256 3125 46656]]
结论:两相同形状矩阵,按元素一一对应计算。
行数不同
用例代码
a1 = np.array([[1,2,3],
[4,5,6]])
a3 = np.array([1,2,3])
a4 = np.array([[1,2,3],
[1,2,3]])
print(np.power(a1,a3))
print(np.power(a1,a4))
print(np.power(a3,a1))
print(np.power(a4,a1))
输出
[[ 1 4 27]
[ 4 25 216]]
[[ 1 4 27]
[ 4 25 216]]
[[ 1 4 27]
[ 1 32 729]]
[[ 1 4 27]
[ 1 32 729]]
结论:触发广播机制,小矩阵扩展成和大矩阵相同形状再计算。
列数不同
用例代码
a1 = np.array([[1,2,3],
[4,5,6]])
a5 = np.array([[1,2],
[4,5]])
print(np.power(a1,a5))
输出
Traceback (most recent call last):
File "D:/Users/**/PycharmProjects/pythonProject/main.py", line 38, in <module>
print(np.power(a1,a5))
ValueError: operands could not be broadcast together with shapes (2,3) (2,2)
结论:报错,不让这么干。