由于我在 stackoverflow 上获得的一些帮助,我正在使用掩码数组,但是我遇到了掩码数组的 np.where 评估问题。

我的掩码数组是:

m_pt0 = np.ma.masked_array([1, 2, 3, 0, 4, 7, 6, 5],
                           mask=[False, True, False, False,
                                 False, False, False, False])

并打印如下:
In [24]: print(m_pt0)
[1 -- 3 0 4 7 6 5]

我正在寻找 m_pt0 中的索引,其中 m_pt0 = 0,我希望
np.where(0 == m_pt0)

会返回:
(array([3]))

然而,尽管有面具(或因为?),我反而得到
(array([1, 3]),)

使用掩码的全部目的是避免访问“空白”的索引,所以我如何使用 where(或其他函数)来仅检索未屏蔽并匹配我的 bool 条件的索引。

最佳答案

您需要使用 where() 函数的掩码变体,否则它将为掩码数组返回错误或不需要的结果。其他函数也是如此,例如 polyfit()

IE。:

In [2]: np.ma.where(0 == m_pt0)
Out[2]: (array([3]),)

关于python - np.where 和掩码数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43761425/

10-15 11:36