我最近意识到python可以自动添加2个数组,即使它们具有不同的维度,只要其中一个数组包含另一个数组的维度。例如:
import numpy as np
a=np.array([[1,2],[3,4]])
b=np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
print a.shape
print b.shape
b=b+a
print b
这种行为可能会给我一些问题,因为如果形状不完全相同,期望python返回错误。
有没有办法扭转这种行为,如果形状不完全相同,操作会失败?
答案 0 :(得分:2)
不,没有简单的方法可以禁用该行为。它被称为broadcasting(只要其中一个数组包含另一个数组的维度,它就不那么容易了!)并内置到NumPy中。
但是,在进行任何操作或使用numpy.ndarray
的自定义子类之前,您始终可以比较数组的形状。