numpy:对数组进行切片,同时围绕数组的边界进行循环(甜甜圈的拓扑结构)



我试图通过潜在地重叠数组的边界来对numpy数组进行切片。我本以为手里会有一个拓扑甜甜圈,但这并没有达到我的预期。举个例子来说,这是千言万语:

import numpy as np
# a 10x10 array with c
arr =np.array([[ c + 10 * r for c in range(10)] for r in range(10) ])
print(t[1:3,8:1])

给出

[]

尽管我早就预料到了:

[[ 81,82],
[ 91,92],
[  1, 2]]

我认为python支持负位置,但在使用时也失败了

print(t[1:3,-2:1])
[]

我是不是错过了什么?

正如hpaulj所说,这是不可能的。

但是,可以使用numpy.append或创建一个存储自定义切片的新阵列。不幸的是,这将使通过编辑切片中的数据来更改原始数组中的数据变得不可能。

最后一个限制使它对我的情况来说不切实际,也毫无用处,但如果你在这个问题上偶然发现,并且你不需要结果作为参考,请随意留下点赞。

最新更新