您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – numpy数组的列表索引中的多个切片

5b51 2022/1/14 8:20:48 python 字数 1976 阅读 487 来源 www.jb51.cc/python

例如,Numpy数组允许索引列表a = np.arange(1000) l = list([1,44,66,33,90,345]) a[l] = 22 但是,如果我们想要使用多切片索引或索引加切片,则此方法不起作用.a = np.arange(1000) l = list([1,44,66,33,90, slice(200,300) , slice(500,

概述

例如,Numpy数组允许索引列表

a = np.arange(1000)
l = list([1,44,66,33,90,345])
a[l] = 22

但是,如果我们想要使用多切片索引或索引加切片,则此方法不起作用.

a = np.arange(1000)
l = list([1,slice(200,300),slice(500,600) ])
a[l] = 22

代码返回一条错误消息:

IndexError: too many indices

我的问题很简单:
你知道如果在numpy或scipy中存在使用这种索引的有效方法吗?

或者使用这样的索引方法有什么好方法

不要忘记切片的使用会产生非常快的代码;我的问题是拥有尽可能快的代码.

a = np.arange(1000)
l = np.hstack(([1,90],np.arange(200,np.arange(500,600)))
a[l] = 22

我不确定这是否是最简单的方法,但它确实有效.

编辑:你说这比使用切片慢;但是您无法使用任意值创建切片对象.也许你应该做几个任务然后:

%timeit a[np.hstack(([1,600)))] = 22
10000 loops,best of 3: 39.5 us per loop

%timeit a[[1,90]] = 22; a[200:300] = 22; a[500:600] = 22
100000 loops,best of 3: 18.4 us per loop

总结

以上是编程之家为你收集整理的python – numpy数组的列表索引中的多个切片全部内容,希望文章能够帮你解决python – numpy数组的列表索引中的多个切片所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶