首页 > 解决方案 > ValueError:操作数无法与形状一起广播 (2501,201) (2501,)

问题描述

我是 python 新手,所以请善待。

我正在尝试将两个 Numpy 数组与该np.logical_or函数进行比较。当我运行下面的代码时,行上会出现一个错误,
Percentile = np.logical_or(data2 > Per1, data2 < Per2) 说明

ValueError:操作数无法与形状一起广播 (2501,201) (2501,)

data = 1st Array

data2 = 2nd Array

Per1 = np.percentile(data, 10, axis=1)

Per2 = np.percentile(data, 90, axis=1)

Percentile = np.logical_or(data2 > Per1, data2 < Per2)

print(Percentile)

我检查了两个数组的形状,它们看起来都具有相同的形状(2501,201) (2501,201)。因此,我很难理解为什么会发生此错误,任何帮助将不胜感激。

标签: pythonnumpyvalueerrorarray-broadcastingoperands

解决方案


您需要添加一个维度(通过使用[:, None]toPer1Per2使它们可广播到数据。

Percentile = np.logical_or(data2 > Per1[:, None], data2 < Per2[:, None])

推荐阅读