擅长:python、mysql、java
<p>如果未使用numpy,则可以在列表中使用zip()筛选列:</p>
<pre><code>Filtered = [ [v for v,m in zip(row, MaskTable) if m] for row in Table ]
</code></pre>
<p>如果确实使用numpy,则表和遮罩必须是numpy对象:</p>
<pre><code>import numpy as np
Table = np.array([[True, False, False, False, False],
[False, False, True, False, False],
[True, False, False, True, False]])
MaskTable = np.array([True, False, True, True, False])
Filtered = Table[:,MaskTable]
</code></pre>
<p>以上是你在标题中提出的问题的答案</p>
<p>但是,您的示例输出表明,您实际要做的是在矩阵中按列应用OR关系:</p>
<pre><code>MaskTable = np.any(Table,axis=0)
</code></pre>
<p>或</p>
<pre><code>MakTable = np.logical_or.reduce(Table,axis=0)
</code></pre>