假设您有一个N*N
名为的数组a
,您可以简单地执行以下操作:
np.concatenate((a[k:-k:N-2*k-1,k:-k], a[k+1:-k-1,k:-k:N-2*k-1]), None)
提取第k
th 轮(从零开始),其中第一个切片代表两行,第二个切片代表两列。
示例(输出排序以便于验证):
N = 8
k = 1
a = np.arange(N * N).reshape(N, N)
print(a)
print(np.sort(np.concatenate((a[k:-k:N-2*k-1,k:-k], a[k+1:-k-1,k:-k:N-2*k-1]), None)))
这将输出:
[[ 0 1 2 3 4 5 6 7]
[ 8 9 10 11 12 13 14 15]
[16 17 18 19 20 21 22 23]
[24 25 26 27 28 29 30 31]
[32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47]
[48 49 50 51 52 53 54 55]
[56 57 58 59 60 61 62 63]]
[ 9 10 11 12 13 14 17 22 25 30 33 38 41 46 49 50 51 52 53 54]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句