在切片操作中','的作用-[:,::-1]

时间:2019-04-21 18:02:55

标签: python arrays list

在经历Sklearn Tutorial时,我遇到了这段代码

order_centroids = original_space_centroids.argsort()[:, ::-1]

我不明白:,做什么。

order_centroids中存储的数据是

array([[28060, 36086, 36087, ..., 29380, 28915, 28914],
       [28060, 33378, 33379, ...,  9698, 26784, 15313],
       [28060, 36209, 36211, ..., 15303, 22350, 48197],
       ...,
       [28060, 36664, 36665, ..., 47821, 32892, 37525],
       [56120, 31887, 31888, ...,  9603, 51250, 30224],
       [56120, 33902, 33903, ..., 20843, 14948, 30316]])

2 个答案:

答案 0 :(得分:2)

逗号分隔数组中每个维度的切片。因此,[:,::-1]从第一个维度获取所有项目,从第二个维度获取所有项目,但是在“步骤”设置为-1的情况下,反转了第二个维度的顺序。

答案 1 :(得分:0)

它只是定义元组的普通逗号运算符。您的代码

order_centroids = original_space_centroids.argsort()[:, ::-1]

等同于

order_centroids = original_space_centroids.argsort().__getitem__(
    (slice(None, None, None), slice(None, None, -1)
)