在python中查找特定值矩阵的索引x、y



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

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:具有多个元素的数组的真值为模棱两可的使用.any()或.all()

您需要将where行更改为类似以下内容:

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

注意每个条件子句周围的()s&的用法(意思是"one_answers")。这是因为在numpy中,<,<=,>,>=,&,|,...被重写,即它们的行为与原生python不同。andor不能被覆盖,这就是您收到错误消息的原因。

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

zip(*data_indices)

相关内容

  • 没有找到相关文章