gpt4 book ai didi

python - 如何以matlab风格复制numpy数组

转载 作者:行者123 更新时间:2023-11-28 22:01:14 25 4
gpt4 key购买 nike

在 matlab/GNU Octave(我实际使用的)中,我使用此方法将二维数组的特定元素复制到另一个二维数组:

B(2:6, 2:6) = A

在哪里

size(A) = (5, 5)

我的问题是,“如何使用 numpy 在 python 中实现这一点?”目前,例如,我在 python 中使用以下嵌套循环:

>>> import numpy as np
>>> a = np.int32(np.random.rand(5,5)*10)
>>> b = np.zeros((6,6), dtype = np.int32)

>>> print a
[[6 7 5 1 3]
[3 9 7 2 0]
[9 3 7 6 7]
[9 8 2 0 8]
[8 7 7 9 9]]
>>> print b
[[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],
[0, 0, 0, 0, 0, 0]]

>>> for i in range(1,6):
for j in range(1,6):
b[i][j] = a[i-1][j-1]
>>> print b
[[0, 0, 0, 0, 0, 0],
[0, 6, 7, 5, 1, 3],
[0, 3, 9, 7, 2, 0],
[0, 9, 3, 7, 6, 7],
[0, 9, 8, 2, 0, 8],
[0, 8, 7, 7, 9, 9]]

有更好的方法吗?

最佳答案

它几乎与 MATLAB 相同:

b[1:6, 1:6] = a

唯一的问题是 Python 使用基于 0 的索引,因此第二个元素是 1 而不是 2。

关于python - 如何以matlab风格复制numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13340541/

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