【发布时间】:2021-02-16 06:33:45
【问题描述】:
我正在尝试添加形状为 (2,) 和 (2, 1) 的数组,但它不起作用。示例:
np.array([0, 1]).T + np.array([[0], [1]])
输出:
array([[0, 1], [1, 2]])
预期输出:
array([[0], [2]])
我尝试过重塑和切片,但它们都不适合我... 我怎样才能达到预期的效果?
【问题讨论】:
-
显示什么不起作用。一个简单的切片应该可以做到
-
用 (2,1) 广播 (2,) 会产生 (2,2)。如果您想要 (2,1) 结果,请将第一个结果转换为 (2,1) 。广播会将 (2,) 扩展到 (1,2)。
-
numpy 使用的广播规则可能难以猜测但并不复杂。该文档实际上非常好,您可以在这里阅读:numpy.org/doc/stable/user/basics.broadcasting.html
标签: python numpy numpy-ndarray