如何解释这种 NumPy 索引:a[2::2, ::2]?

How to interpret this kind of NumPy indexing: a[2::2, ::2]?

谁能告诉我如何解释这种寻址方式:a[2::2, ::2]?我不知道如何使用这种索引。

a = np.random.random((6,6))
print(a)
[[0.17948771 0.61436323 0.48768101 0.20540278 0.15331527 0.17766787]
 [0.40028608 0.63915391 0.92719741 0.56604286 0.92959065 0.92707981]
 [0.27554561 0.09253335 0.73841082 0.00840638 0.33683454 0.89065058]
 [0.25030938 0.37093169 0.70789081 0.95205777 0.60483874 0.81425781]
 [0.14250593 0.56916738 0.45440191 0.21140548 0.72945015 0.59313599]
 [0.68116512 0.45349473 0.23057609 0.36349226 0.622701   0.07951557]]

a[2::2, ::2]
array([[0.27554561, 0.73841082, 0.33683454],
       [0.14250593, 0.45440191, 0.72945015]])

a[2:] 将 return 从索引 2 到列表末尾的 a 的一部分。 a[2::2] 会做同样的事情,但只会 return 每两个值,a[2::3] 每三个值等等。所以如果

a = [0,1,2,3,4]

然后 a[2::2] 将是 [2,4](2 到 4,但仅每秒一次)。对于 numpy 数组 a[2:,:] 将 return 从第一维的索引 2 开始的一片 a 和整个第二维。与 a[2:,:].

相比,a[2::2, ::2] 将因此仅 return 每个第二个元素

在您的示例中,returned 元素来自以下索引

[[(2,0), (2,2), (2,4)], [(4,0), (4,2), (4,4)]]