gpt4 book ai didi

python - 如何在 Python 中将矩阵复制到更大的矩阵?

转载 作者:行者123 更新时间:2023-11-28 22:58:35 29 4
gpt4 key购买 nike

我是 Python 世界的新移民。我需要弄清楚如何在 Python 中将矩阵复制到更大的矩阵。让我用 Matlab 中的一个例子来说明这一点:

A = randn(4,4);
B = eye(2,2);
A(1:2,1:2) = B

给予

A = 

1.0000 0 3.5784 0.7254
0 1.0000 2.7694 - 0.0631
-2.2588 - 0.4336 - 1.3499 0.7147
0.8622 0.3426 3.0349 - 0.2050

我正在尝试以下列方式使用 NumPy 对 Python 进行类似的操作。

A = np.random.randn(4,4)
B = np.eye(2,2)
A[0:1,0:1] = B

给予

ValueError: output operand requires a reduction, but reduction is not enabled.

当然,避免这种情况的最简单方法是使用循环,但我希望将其保持矢量化。

谁能告诉我一个不使用 for 循环的方法?

最佳答案

问题是:

A[0:1,0:1] = B

你想要:

A[0:2,0:2] = B

为什么?因为 Python 使用半开范围。所以切片 [0:1] 是半开范围 [0, 1),意味着只有索引 0;切片 [0:2] 是半开范围 [0, 2),表示索引 01.

关于python - 如何在 Python 中将矩阵复制到更大的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732614/

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