7

我需要从 3D numpy 数组中删除一些行。例如:

a = [[1,2,3]
     [4,5,6]
     [7,8,9]

     [9,8,7]
     [6,5,4]
     [3,2,1]]

我想删除矩阵两页的第三行以获得类似的东西:

 a = [[1,2,3]
     [4,5,6]

     [9,8,7]
     [6,5,4]]

我试过了

   a = numpy.delete(a, 2, axis=0)

但我无法获得我需要的东西。

4

2 回答 2

10

axis应该1

>>> import numpy
>>> a = [[[1,2,3],
...       [4,5,6],
...       [7,8,9]],
...      [[9,8,7],
...       [6,5,4],
...       [3,2,1]]]
>>> numpy.delete(a, 2, axis=1)
array([[[1, 2, 3],
        [4, 5, 6]],

       [[9, 8, 7],
        [6, 5, 4]]])
于 2013-10-24T09:24:18.687 回答
0

另一种方法是使用切片表示法,在其中删除第二轴的最后一行。

>>> a[:, :-1, :]
array([[[1, 2, 3],
        [4, 5, 6]],

       [[9, 8, 7],
        [6, 5, 4]]])
于 2020-12-04T02:11:32.233 回答