我有一个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])
不会忽略负索引。
正确的方法是什么?
答案 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]
但是在修改切片数组时,您必须要小心,因为这是原始数组的视图。