如何从Numpy数组中删除最后n行?

Dav*_*123 5 python arrays numpy

我正在尝试从numpy数组中删除最后几行.我可以使用以下代码删除0到i行.

for i, line in enumerate(two_d_array1):
    if all(v == 0 for v in line):
        pass
    else:
        break

two_d_array2 = np.delete(two_d_array1, slice(0, i), axis=0)
Run Code Online (Sandbox Code Playgroud)

关于如何在数组末尾执行相同操作的任何建议?

for i, line in enumerate(reversed(two_d_array2)):
    if all(v == 0 for v in line):
        pass
    else:
        break

two_d_array3 = np.delete(two_d_array2, **slice(0, i)**, axis=0)
Run Code Online (Sandbox Code Playgroud)

Ale*_*der 13

您可以使用切片表示法进行索引.

要从n数组中删除最后一行:

a = np.array(range(10)).reshape(5, 2)
>>> a
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

n = 2  # Remove last two rows of array.
>>> a[:-n, :]
array([[0, 1],
       [2, 3],
       [4, 5]])
Run Code Online (Sandbox Code Playgroud)

要从n数组中删除第一行:

>>> a[n:, :]  # Remove first two rows.
array([[4, 5],
       [6, 7],
       [8, 9]])
Run Code Online (Sandbox Code Playgroud)