小编ano*_*ell的帖子

从numpy数组中删除多个切片

我有一个给定的numpy数组和一个包含许多切片对象的列表(或者包含(start, end)元组).我希望从原始数组中删除切片对象位置,并获得具有剩余值的第二个数组.

玩具示例:

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))
Run Code Online (Sandbox Code Playgroud)

做一些事情,结果应该是

array([0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
Run Code Online (Sandbox Code Playgroud)

数组可以是几十万个,切片对象列表可以包含几千个元素,我需要经常运行操作,所以速度有点重要.

就我所见,Numpy delete不会获取切片列表?

现在我正在生成切片对象列表的补充并对其进行切片,但生成补码是一个有点尴尬的过程,我在对切片列表进行排序然后迭代它,根据需要创建补充切片对象.我希望有一种更优雅的方式我没想到!

python arrays numpy

9
推荐指数
1
解决办法
2153
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1