我正在尝试从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)
有关如何在数组末尾执行相同操作的任何建议吗?
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)
答案 0 :(得分:11)
您可以使用slice表示法进行索引。
从数组中删除最后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]])
要从数组中删除第一个n
行:
>>> a[n:, :] # Remove first two rows.
array([[4, 5],
[6, 7],
[8, 9]])
答案 1 :(得分:0)
你也可以使用: 数组名称[:-n] 这是一种比前一种时间复杂度最佳的有效方法