删除数组中的最后一个值(使用Numpy)

时间:2019-04-06 13:50:27

标签: python arrays numpy multidimensional-array numbers

我有一个Array[0]的{​​{1}} 我要删除此数组中的最后3个值。

len(Array[0]) = 40

可以正常工作。但是,

np.delete(Array[0],[36,39])

仅删除最后一个数字(而不是最后三个)。

np.delete(Array[0],[len(Array[0])-4,len(Array[0])-1])

什么都不做,并给我警告: 主要:1:FutureWarning:将来,np.delete(Array[0],[-3,-1]) 不会忽略负索引。

正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以结合使用range(37, 40)axis关键字参数来删除最后三列。这是一个人为的示例:

In [88]: arr = np.random.random_sample((3, 10))
In [89]: arr.shape
Out[89]: (3, 10)

In [90]: new_arr = np.delete(arr, range(7, 10), axis=1)

In [91]: new_arr.shape
Out[91]: (3, 7)

请注意,numpy.delete()将返回一个新的子数组。如果您对内存要求不满意,则应该slice as Divakar suggested

sliced_arr = Array[0][:-3]

但是在修改切片数组时,您必须要小心,因为这是原始数组的视图。