numpy 3d数组从每行删除第一条记录

时间:2019-03-02 01:42:55

标签: python arrays numpy numpy-ndarray

假设我有一个3d Numpy数组:

array([[[0, 1, 2],
        [0, 1, 2],
        [0, 2, 5]]])

是否可以从所有行(最里面的行)中删除第一个条目。在这种情况下,每行将删除0。

为我们提供以下输出:

[[[1, 2],
  [1, 2],
  [2, 5]]]

2 个答案:

答案 0 :(得分:2)

x
array([[[0, 1, 2],
        [0, 1, 2],
        [0, 2, 5]]])

x.shape
# (1, 3, 3)

您可以使用Ellipsis...)在所有最外轴上进行选择,并使用1:从每一行中切出第一个值。

x[..., 1:]    
array([[[1, 2],
        [1, 2],
        [2, 5]]])

x[..., 1:].shape
# (1, 3, 2)

答案 1 :(得分:1)

为补充@coldspeed的响应,slicing in numpy is very powerful and can be done in a variety of ways including with the colon operator : in the index,即

print(x[:,:,1:])
# array([[[1, 2],
#         [1, 2],
#         [2, 5]]])

等效于省略号的既定用法。