Python 什么是'';在此切片操作中执行-[:,:-1]
在检查过程中,我偶然发现了这段代码Python 什么是'';在此切片操作中执行-[:,:-1],python,arrays,list,Python,Arrays,List,在检查过程中,我偶然发现了这段代码 order_centroids = original_space_centroids.argsort()[:, ::-1] 我不明白:,做什么 按质心顺序存储的数据如下: array([[28060, 36086, 36087, ..., 29380, 28915, 28914], [28060, 33378, 33379, ..., 9698, 26784, 15313], [28060, 36209, 36211, ...,
order_centroids = original_space_centroids.argsort()[:, ::-1]
我不明白:,做什么
按质心顺序存储的数据如下:
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]])
它只是定义元组的普通逗号运算符。你的代码
order_centroids = original_space_centroids.argsort()[:, ::-1]
相当于
order_centroids = original_space_centroids.argsort().__getitem__(
(slice(None, None, None), slice(None, None, -1)
)
逗号分隔数组中每个维度的切片。所以[:,:::-1]从第一维度获取所有项目,从第二维度获取所有项目,但在第二维度上颠倒顺序,将“步骤”设置为-1 例如,你读过吗?比较
数组([[1,2],[3,4]])
,数组([[1,2],[3,4]])[:-1]
和数组([[1,2],[3,4]])[:,:-1]