为什么我没有好名字的这种numpy切片操作不起作用?

时间:2019-07-11 08:00:22

标签: numpy

我不明白为什么我的切片操作不起作用。我的意图是将切片[:: 2]应用于a的每个子数组,以使x的大小为(3,5),但事情并没有按预期进行。

a = np.arange(0,30)
a.shape = (3, -1)
x = a[:][::2]

a : array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
          [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
          [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])

实际输出是

x: array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
         [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])

所需的输出是

x : array([0, 2, 4, 6, 8],
          [10, 12, 14, 16, 18],
          [20, 22, 24, 26, 28])

1 个答案:

答案 0 :(得分:2)

错别字:

x = a[:,::2]

否则,请在第一个维度上选择完整的数组,然后再次执行相同操作,第一个维度而不是第二个维度。