回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>对于Python中的2D掩码数组,获得包含非掩码值的第一行和最后一列的索引的最佳方法是什么?在</p>
<pre><code>import numpy as np
a = np.reshape(range(30), (6,5))
amask = np.array([[True, True, False, True, True],
[True, False, False, True, True],
[True, True, True, False, True],
[True, False, False, False, True],
[True, True, True, False, True],
[True, True, True, True, True]])
a = np.ma.masked_array(a, amask)
print a
# [[-- -- 2 -- --]
# [-- 6 7 -- --]
# [-- -- -- 13 --]
# [-- 16 17 18 --]
# [-- -- -- 23 --]
# [-- -- -- -- --]]
</code></pre>
<p>在本例中,我想获得:</p>
<ul>
<li><code>(0, 4)</code>用于轴0(因为第一行无掩码值是0,最后一行是4;第6行(第5行)只包含掩码值)</li>
<li><code>(1, 3)</code>对于轴1(因为具有未屏蔽值的第一列是1,最后一列是3(第1列和第5列只包含掩码值))。在</li>
</ul>
<p><em>[我考虑过也许把<code>numpy.ma.flatnotmasked_edges</code>和<code>numpy.apply_along_axis</code>结合起来,但没有任何成功…]</em></p>