使用非连续序列从numpy数组中选择索引[duplicate]

问题描述 投票:1回答:1

这个问题在这里已有答案:

我有一个2d numpy数组,matrix_a,形状2x20。如何选择第5列和第5列以及第15:18列。

matrix_a = np.array([[1,2,3,4,5...,19,20],
                     [1,2,3,4,5...,19,20]])

我想选择:

    [[5,6,7,15,16,17],
     [5,6,7,15,16,17]]

我可以使用matrix_a[0,5:8]分别选择列,有没有办法一次选择它?

除了0指数和1指数,在MATLAB中,我所要做的就是:

matrix_a(:,[5:8, 15:18])

在python中有一个类似的,简单的命令吗?

numpy
1个回答
3
投票

您可以使用numpy.r_组合两个切片,这是将切片对象转换为沿第一个轴连接的便捷方式。它可以接受混合列表,数组,标量和切片表示法,例如np.r_[5, np.array([1,2]), [3]*2, 15:18]也是一个验证结构,它给出了array([ 5, 1, 2, 3, 3, 15, 16, 17])

matrix_a = np.tile(np.arange(1, 21), 2).reshape(2, 20)

matrix_a[:, np.r_[5:8, 15:18]]
#array([[ 6,  7,  8, 16, 17, 18],
#       [ 6,  7,  8, 16, 17, 18]])
© www.soinside.com 2019 - 2024. All rights reserved.