我想有一个数组X,我想 Select ,例如,第1,第5,第7和所有的最后X[:, [0,4,6]]
0列(不重叠).我知道我可以得到第一,第五,第七列使用X[:, [0,4,6]]
和最后X[:, [0,4,6]]
0列使用X[:, -1000:]
.但是,有没有一种快速简单的方法可以使用一条线/对象将它们全部选中?
我想有一个数组X,我想 Select ,例如,第1,第5,第7和所有的最后X[:, [0,4,6]]
0列(不重叠).我知道我可以得到第一,第五,第七列使用X[:, [0,4,6]]
和最后X[:, [0,4,6]]
0列使用X[:, -1000:]
.但是,有没有一种快速简单的方法可以使用一条线/对象将它们全部选中?
您可以使用np.r_
:
X[:, np.r_[[0,4,6],-1000:0]]
例如,一个(5,20)数组 Select 0,4,6和最后10:
X = np.arange(100).reshape(-1, 20)
X[:, np.r_[[0,4,6],-10:0]]
# array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
# [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
# [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
# [60, 61, 62, 63, 64, 65, 66, 67, 68, 69]])
中级:
np.r_[[0,4,6],-10:0]
# array([ 0, 4, 6, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1])
请注意,您应该确保切片不重叠,否则您将有重复的列.