Python:使用列表索引[发件人:至]任意numpy数组

2024-04-16 19:02:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个矩阵中的一块复制到另一个矩阵中的一块。 要将其用于任何类型的n维数组,我需要通过[]操作符应用一个带有偏移量的列表。有办法吗?你知道吗

mat_bigger[0:5, 0:5, ..] = mat_smaller[2:7, 2:7, ..] 

比如:

off_min = [0,0,0]
off_max = [2,2,2]
for i in range(len(off_min)):
  mat_bigger[off_min[i] : off_max[i], ..] = .. 

Tags: in类型列表forrange矩阵数组min
1条回答
网友
1楼 · 发布于 2024-04-16 19:02:19

可以通过创建slice对象的元组来实现这一点。例如:

mat_big = np.zeros((4, 5, 6))
mat_small = np.random.rand(2, 2, 2)

off_min = [2, 3, 4]
off_max = [4, 5, 6]

slices = tuple(slice(start, end) for start, end in zip(off_min, off_max))

mat_big[slices] = mat_small

相关问题 更多 >