繁体   English   中英

使用元组解包的python list / numpy array indexing可能吗?

[英]python list / numpy array indexing using tuple unpacking possible?

我想知道是否可以在“从...到索引”类型的样式中使用元组拆包,因此使用inds = (a,b)M[*inds]将导致M[a:b]

我经常有一个元组,其中包含一些索引,这些索引用于将数据切成一些有趣的子集,并认为像上面建议的那样会很方便。 有没有办法做到这一点?

感谢您的输入

您可以使用元组拆包,但必须将它们拆包为slice ,然后使用该切片进行索引:

>>> A = list(range(10))
>>> inds = 3, 6
>>> A[slice(*inds)]
[3, 4, 5]

也适用于numpy

>>> B = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> ind_x, ind_y = (0,2), (1,None)
>>> B[slice(*ind_x),slice(*ind_y)]
array([[2, 3],
       [5, 6]])

请记住, A[start:stop:step]只是A[slice(start,stop,step)]语法糖。

您不能使用tuples (至少不能以开始-停止-步骤的方式)。 但是您始终可以使用slice

一些例子:

indx = slice(start, stop, step)
indy = slice(starty, stopy, stepy)
sliced = M[indx]
sliced2 = M[:,indy]
sliced3 = M[(indx, indy)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM