1
我有2個numpy數組:較大的一個是10 x 10 numpy數組,較小的數組是2 x 2數組。用較小的數組替換較大的numpy數組中的值
我想在較大的數組中使用用戶指定的位置替換較小數組中的值。例如。用2 x 2數組替換4個值,從中心點開始替換10 x 10數組的值。
現在,我正在通過使用嵌套for循環,並確定較大的數組中的哪些像素與較小的數組重疊。有沒有更pythonic的方式來做到這一點?
我有2個numpy數組:較大的一個是10 x 10 numpy數組,較小的數組是2 x 2數組。用較小的數組替換較大的numpy數組中的值
我想在較大的數組中使用用戶指定的位置替換較小數組中的值。例如。用2 x 2數組替換4個值,從中心點開始替換10 x 10數組的值。
現在,我正在通過使用嵌套for循環,並確定較大的數組中的哪些像素與較小的數組重疊。有沒有更pythonic的方式來做到這一點?
In [1]: import numpy as np
In [2]: a = np.zeros(100).reshape(10,10)
In [3]: b = np.ones(4).reshape(2,2)
In [4]: a[4:6, 4:6] = b
In [5]: a
Out[5]:
array([[ 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., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 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., 0., 0., 0., 0., 0., 0., 0., 0.]])