提取矩阵

时间:2016-04-23 09:30:06

标签: python numpy indexing

我有一个3D矩阵,在其中我已经确定了一个“感兴趣的区域” - 一个边界框 - 我想要索引。

我有每个轴的上限和下限:

([x:13  y:5 z:21] [x:27 y:29 z:35])

但我不太确定如何获得此框中值的所有索引。我相信我目前使用的“订单”是C常规,我应该保留。

使用python有一种简单的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用切片:

my3d[13:28, 5:30, 21:36]

请注意,上限是独占的,因此可能希望将它们加1。

答案 1 :(得分:1)

使用numpy.where查找满足条件的数组的索引。 numpy.where返回一个元组,第一个元素包含索引。

实施例

from __future__ import print_function
import numpy

a = numpy.arange(0, 100, 10) # 0, 10, 20, ...
ind = numpy.where(a>30)[0]
print(ind) # [4 5 6 7 8 9]