如何使用行[a,b]将另一个数组索引为数据[a:b]?

时间:2011-08-11 10:11:00

标签: python indexing numpy

我有两个数组,第一个是(n,2)数组,它包含数据池中选择的开始和结束,第二个是数据池。

一般的想法是使用第一个从第二个提取相关数据,但我不知道如何干净利落地使用numpy。

我找到了以下解决方案,但它看起来很笨拙:

relevant_data = datapool[np.arange(*selection[0])]]

有什么想法吗?

更新:嵌套索引的能力是一个很大的优势(获得选择的子部分)。

2 个答案:

答案 0 :(得分:6)

使用slice

In [1]: row = [4,7]

In [2]: data = range(10000)

In [3]: data[slice(*row)]
Out[3]: [4, 5, 6]

答案 1 :(得分:4)

比使用slice()更简单的解决方案是

row = [4, 7]
data[row[0]:row[1]]

这可能更容易阅读,因为它更明确一些。