我想在一个数组中得到x[start1:stop1:step1 ]
和{
Python中是否有这样的语法:
x[start1:stop1:step1 + start2:stop2:step2]
在Matlab中,它很简单:
^{pr2}$更新:
我看到很多答案都暗示着串联。在
我最初的目标是对高维数组进行切片,例如在2D中:
x[start1:stop1 + start2:stop2, start3:stop3 + start4:stop4]
串联是可以的。但在高维中似乎太复杂了。在
有没有一种方法像Matlab一样简单?在
x(start1:stop1 start2:stop2, start3:stop3 start4:stop4 )
我们可以连接数组索引而不是数组本身吗?
将两个列表串联起来,如Jonas's answer,是最简单的解决方案,通常也是最好的解决方案。在
如果你担心做临时列表,你可以做一些稍微复杂一点的事情,比如:
…或:
^{pr2}$然而,我预计其中任何一个都会慢得多,除非这两个子列表太大,以至于内存分配时间占据了所有事情,当然,它们要复杂得多,可读性也差得多。在
这两种解决方案的唯一真正优势是,如果您实际上不需要列表,则可以轻松地将它们转换为惰性迭代器:
(事实上,第二个是Jonas的答案的懒惰等价物:}做了相同的事情,}做了相同的事情。)
islice(x, start1, stop1, step1)
和{chain(a, b)
和{这个操作在python中也非常简单。一旦您定义了列表,您可以这样做:
希望这有帮助。在
您可以像这样连接两个数组(列表):
x[start1:stop1:step1] + x[start2:stop2:step2]
相关问题 更多 >
编程相关推荐