如果有效地给出列数索引数组,如何使用numpy从另一个数组的列(维度为2 * 4)形成2D数组

时间:2017-09-26 00:15:24

标签: python numpy

我试图使用numpy制作一个2乘n的数组,里面的元素来自由列数列选择的特定列。 例如,如果我有这样的东西

[[1, 2, 3],
 [2, 3, 4]]

作为我的输入数组,我想要列

[2,3,1,2,3]

我会得到

 [[2, 3, 1, 2, 3], 
  [3, 4, 2, 3, 4]]

作为我的输出数组

1 个答案:

答案 0 :(得分:1)

您想沿第二维切片。但请注意,numpy使用基于零的索引。您需要[1, 2, 0, 1, 2]而不是[2, 3, 1, 2, 3]

a = np.array([
    [1, 2, 3],
    [2, 3, 4]])

a[:, [1, 2, 0, 1, 2]]

array([[2, 3, 1, 2, 3],
       [3, 4, 2, 3, 4]])

​