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

时间:2017-08-09 03:31:00

标签: python arrays numpy

我有一个看起来像这样的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 个答案:

答案 0 :(得分:5)

由于你正在使用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)

答案 1 :(得分:4)

您可以将其切片,其中1:表示您只需要最内层阵列中的第二列和所有剩余列(即您删除其第一列)。

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

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

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