理解 NumPy 中的错误:“操作数无法一起广播”
使用 NumPy 数组时,注意这一点至关重要数组形状以避免广播错误。在给定的场景中,您遇到错误“ValueError:操作数无法与形状一起广播。”
出现此错误是因为 NumPy 的运算符(例如 *)默认执行逐元素操作。但是,如果数组具有不同的形状,NumPy 会尝试广播它们,这可能会导致兼容性问题。
广播规则和兼容性
广播涉及扩展一个数组的维度或两个数组以使它们兼容元素操作。可以广播大小为 1 的维度或缺失的维度。
在您的情况下,X 的形状为 (97, 2),y 的形状为 (2, 1)。广播维度将导致:
97 2 2 1
如您所见,第一个维度(97 和 2)发生冲突。根据广播规则,冲突的维度必须相同或者其中一个应该为 1。
解决广播错误
要解决此问题,您需要确保数组的维度是兼容的。在您的情况下,您可以使用 NumPy 的点积,它执行矩阵乘法:
X.dot(y)
矩阵乘法遵循不同的兼容性规则,确保第一个数组中的列数与第二个数组中的行数匹配大批。由于 X 有 2 列,y 有 2 行,因此矩阵乘法有效,得到形状为 (97, 1) 的向量。
以上是为什么我在 NumPy 中收到'操作数无法一起广播”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!