index masked element Array

时间:2014-02-20 15:03:24

标签: python numpy matplotlib

我有一个数组

z = np.random.random((10,10))  --> two dimensions

带面具

y,x=np.mgrid[slice(0,61, 1),slice(0,106, 1)] 

sorted = np.sort(z,axis=None)
mask = ma.masked_inside(z,sorted[10],sorted[-10])

mask是仅在10分钟元素内部屏蔽的数组,在屏幕内部屏蔽为TRUE时屏蔽10最大值。我需要索引位置将x,y放在注释中,但仅限于创建被屏蔽的元素

我想返回蒙版掩码元素和所有元素的索引位置以创建自动注释对象

 ax.annotate(str(j)+" Altura",xy=(i,j))

1 个答案:

答案 0 :(得分:3)

要返回“索引位置”,请在掩码上使用np.where。例如:

import numpy as np
A = np.array([[2,7,9],[9,1,4],[8,7,2]])
idx = A<3 # The mask

print np.where(idx)
print zip(*np.where(idx))

给出:

(array([0, 1, 2]), array([0, 1, 2]))
[(0, 0), (1, 1), (2, 2)]

A<3的位置。我发现对元素进行压缩并将它们打包为有用的元组列表,但是使用第一个表示将它们从原始数组中索引回来。