Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何逐列屏蔽数组列_Python_Numpy - Fatal编程技术网

Python 如何逐列屏蔽数组列

Python 如何逐列屏蔽数组列,python,numpy,Python,Numpy,我有一个如下所示的数组 Table = [[True, False, False, False, False], [False, False, True, False, False], [True, False, False, True, False]] 有没有办法将所有列逐个屏蔽为可屏蔽,最终结果如下 MaskTable = [True, False, True, True, False] 尝试: 输出: array([ True, False

我有一个如下所示的数组

Table = [[True,  False, False, False, False], 
         [False, False, True,  False, False],
         [True,  False, False, True,  False]]
有没有办法将所有列逐个屏蔽为可屏蔽,最终结果如下

MaskTable = [True, False, True, True, False]
尝试:

输出:

array([ True, False,  True,  True, False])

这将使用numpy.any(),它检查给定轴上的任何值是否计算为True。numpy在此处作为np导入。

如果不使用numpy,可以在列表中使用zip()筛选列:

Filtered = [ [v for v,m in zip(row, MaskTable) if m] for row in Table ]
如果确实使用numpy,则表和遮罩必须是numpy对象:

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]
以上是你在标题中提出的问题的答案

但是,您的示例输出表明,您实际要做的是在矩阵中按列应用OR关系:

MaskTable = np.any(Table,axis=0)


你能用文字解释一下你在寻找什么吗(编辑你的问题)。
MaskTable = np.any(Table,axis=0)
MakTable  = np.logical_or.reduce(Table,axis=0)