我希望从一个1D的numpy数组(或向量)中选择多个不相邻的范围。
假设:
>>> idx = np.random.randint(100, size=10)
array([82, 9, 11, 94, 31, 87, 43, 77, 49, 50])
当然,这个有效:
>>> idx[0:3]
array([82, 9, 11])
而这种方法可以通过单独的索引来获取:
>>> idx[[0,3,4]]
array([82, 94, 31])
但是如果我想选择范围0:3
和7:
怎么办?
我已经尝试过:
>>> idx[[0:3,7:]]
SyntaxError: invalid syntax
有没有简单的方法来做这件事,或者我需要分别生成它们然后进行拼接?
[7:]
的stop
值可以从被索引的数组/列表中推导出来。r_
无法做到这一点。 它似乎将7
视为stop
而不是start
。 另一种选择是引发错误。 请查看r_
代码以获取详细信息。 在使用r_
时最好同时提供start
和stop
。 - hpaulj