在python中找到特定值矩阵的索引x,y

时间:2015-06-22 18:42:21

标签: python matrix multidimensional-array indices

我将整数列表转换为二维数组,如下所示:

data = numpy.array( l )
shape = ( 10, 30 )
data = data.reshape( shape )

我试着得到值的矩阵的索引x,y大于某个阈值并且低于某个其他阈值。

我尝试制作下一个,但它提供了一些错误:

data_indices = numpy.where(data<=obj_value_max and data>=obj_value_min) 

错误:

  

ValueError:具有多个元素的数组的真值   暧昧。使用a.any()或a.all()

1 个答案:

答案 0 :(得分:1)

您需要将where行更改为:

data_indices = numpy.where((data<=obj_value_max) & (data>=obj_value_min))

注意每个条件子句周围的()s&(意思是“和”)的使用。这是有效的,因为在numpy中,<,<=,>,>=,&,|,...被覆盖,即它们的行为与本机python不同。无法覆盖andor,这就是您收到错误消息的原因。

要获取每个值的索引对(而不是(x索引的数组,y索引的数组)),请执行

zip(*data_indices)