我最近意识到,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 将返回错误。
是否有任何方法可以改变此行为,以便在形状不完全相同时操作会失败?
最佳答案
不,没有简单的方法可以禁用该行为。它的名字叫broadcasting (这并不像“只要一个数组包含另一个数组的维度”那么简单!)并内置于 NumPy 中。
但是,您始终可以在执行任何操作之前比较数组的形状,或使用 numpy.ndarray
的自定义子类。
关于python - 防止添加不同形状的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45066096/