Numpy数组,查找带有1的列

时间:2014-12-17 03:01:44

标签: python numpy

我希望在numpy数组中找到至少一个单元格为1的列。

Input Array
[0,0,1,0,0,0,1,0,0,1]
[0,1,0,0,0,0,0,0,1,0]
[0,0,0,0,0,0,0,1,0,0]
[0,0,0,1,0,0,1,0,0,0]
Expected Output
[0,1,1,1,0,0,1,1,1,1]

2 个答案:

答案 0 :(得分:5)

numpy.anyaxis=0一起使用(沿第一个轴展平,即沿着行展平):

>>> np.any(a, axis=0)
array([False,  True,  True,  True, False, False,  True,  True,  True,  True], dtype=bool)

当然,您可以轻松地将布尔数组转换为整数:

>>> np.any(a, axis=0)*1
array([0, 1, 1, 1, 0, 0, 1, 1, 1, 1])

答案 1 :(得分:2)

您可以简单地|(或)将它们放在一起:

>>> np.array([0,0,1,0,0,0,1,0,0,1]) | np.array([0,1,0,0,0,0,0,0,1,0])
array([0, 1, 1, 0, 0, 0, 1, 0, 1, 1])