gpt4 book ai didi

python - 如何使用 numpy 将一个小矩阵添加到一个大矩阵中?

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:09 29 4
gpt4 key购买 nike

我想弄清楚如何获取一个小矩阵(下面的矩阵 B)并将值添加到一个更大的矩阵(下面的矩阵 A)中一定的指标。对于这种情况,numpy 似乎是一个不错的选择,但我不知道该怎么做。

矩阵A:

[[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]]

矩阵B:

[[2, 3, 4]
[5, 6, 7]
[8, 9, 3]]

期望的最终结果:

[[0, 0, 0, 0, 0, 0]
[0, 0, 2, 3, 4, 0]
[0, 0, 5, 6, 7, 0]
[0, 0, 8, 9, 3, 0]
[0, 0, 0, 0, 0, 0]]

最佳答案

如果你想将 B 添加到 A 并且 B 的左上角指向索引 (r, c)A 中,你可以使用 B 的索引和 shape 属性:

A[r:r+B.shape[0], c:c+B.shape[1]] += B

如果您只想设置元素(覆盖而不是添加),请将 += 替换为 =。在您的特定示例中:

>>> A = np.zeros((5, 6), dtype=int)
>>> B = np.r_[np.arange(2, 10), 3].reshape(3, 3)

>>> r, c = 1, 2

>>> A[r:r+B.shape[0], c:c+B.shape[1]] += B
>>> A
array([[0, 0, 0, 0, 0, 0],
[0, 0, 2, 3, 4, 0],
[0, 0, 5, 6, 7, 0],
[0, 0, 8, 9, 3, 0],
[0, 0, 0, 0, 0, 0]])

索引操作生成 View A 中,因为它是简单的索引,这意味着数据不会被复制,这使得操作对于大型数组相当有效。

关于python - 如何使用 numpy 将一个小矩阵添加到一个大矩阵中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53124061/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com