防止添加具有不同形状的阵列

时间:2017-07-12 19:30:56

标签: python numpy multidimensional-array

我最近意识到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返回错误。

有没有办法扭转这种行为,如果形状不完全相同,操作会失败?

1 个答案:

答案 0 :(得分:2)

不,没有简单的方法可以禁用该行为。它被称为broadcasting(只要其中一个数组包含另一个数组的维度,它就不那么容易了!)并内置到NumPy中。

但是,在进行任何操作或使用numpy.ndarray的自定义子类之前,您始终可以比较数组的形状。