我有一个给定的numpy数组和一个包含一些切片对象(或者包含(起始位置,结束位置)元组)的列表。我想从原始数组中删除切片对象位置,并获得第二个数组,其中包含剩余的值。
玩具例子:
玩具例子:
myarray = np.arange(20)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19])
mylist=(slice(2,4),slice(15,19))
做某事,结果应该是:
array([0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
数组可能有几十万个元素,切片对象列表可能包含几千个元素,而我需要经常运行操作,因此速度有些重要。
Numpy delete似乎不接受切片列表?
目前,我正在生成我的切片对象列表的补集并对其进行切片,但生成补集是一个有些棘手的过程,在这个过程中,我正在对我的切片列表进行排序,然后迭代它,根据需要创建补集切片对象。我希望还有一种更优雅的方法,但我还没有想到!