python - 防止添加不同形状的数组

标签 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 将返回错误。

是否有任何方法可以改变此行为,以便在形状不完全相同时操作会失败?

最佳答案

不,没有简单的方法可以禁用该行为。它的名字叫broadcasting (这并不像“只要一个数组包含另一个数组的维度”那么简单!)并内置于 NumPy 中。

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

关于python - 防止添加不同形状的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45066096/

相关文章:

python - Django Python 数据库更新

python - Python中的方差膨胀因子

python - 使用 numpy.int32 时的浮点近似值

php - 将多维对象转换为数组

javascript - 如何使用 Javascript 中另一个数组的值更改数组中的特定非零值

python - 获取列表值之间的中间值列表

python - Numpy - 将 2D 数组 reshape 并分区为 3D

python - 如何确保在我的 Scrapy 蜘蛛中解析每个 URL

python - Pandas:有效地分割条目

c - For循环/printf/3d数组