如何在3d numpy数组中删除列

7
我有一个numpy数组,它看起来像这样:
[
[[1,2,3], [4,5,6]],
[[3,8,9], [2,9,4]],
[[7,1,3], [1,3,6]]
]

删除第一列后,我想让它变成这样。
[
[[2,3], [5,6]],
[[8,9], [9,4]],
[[1,3], [3,6]]
]

目前维度为3*3*3,删除第一列后应该是3*3*2

2个回答

11
您可以按以下方式对其进行切片,其中1:表示您只想要内部最后一个数组中的第二列和所有剩余列(即“删除”其第一列)。
>>> a[:, :, 1:]
array([[[2, 3],
        [5, 6]],

       [[8, 9],
        [9, 4]],

       [[1, 3],
        [3, 6]]])

8

既然您正在使用numpy,我将提到numpy的做法。首先,您为该问题指定的维度似乎是错误的。请参见下面的内容。

x = np.array([
[[1,2,3], [4,5,6]],
[[3,8,9], [2,9,4]],
[[7,1,3], [1,3,6]]
])

x的形状是

x.shape
(3, 2, 3)

您可以使用 numpy.delete 来删除一列,如下所示。
a = np.delete(x, 0, 2)
a
array([[[2, 3],
    [5, 6]],

   [[8, 9],
    [9, 4]],

   [[1, 3],
    [3, 6]]])

为了找到一个

a.shape
(3, 2, 2)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接