【发布时间】:2023-04-03 08:40:01
【问题描述】:
我有一个 2D numpy 数组,我想从中提取一个子矩阵。 我通过如下切片数组来获得子矩阵。 在这里,我想要一个 3*3 子矩阵围绕索引为 (2,3) 的项目。
>>> import numpy as np
>>> a = np.array([[0, 1, 2, 3],
... [4, 5, 6, 7],
... [8, 9, 0, 1],
... [2, 3, 4, 5]])
>>> a[1:4, 2:5]
array([[6, 7],
[0, 1],
[4, 5]])
但我想要的是,对于超出范围的索引,它会回到数组的开头并从那里继续。这是我想要的结果:
array([[6, 7, 4],
[0, 1, 8],
[4, 5, 2]])
我知道我可以做一些事情,比如将索引的 mod 获取到数组的宽度;但我正在寻找一个可以做到这一点的 numpy 函数。 而且对于一维数组,这将导致索引超出范围错误,这并不是真正有用...
【问题讨论】:
标签: python list numpy indexing