【发布时间】:2022-01-10 02:18:44
【问题描述】:
我有一个只有二进制值的 2d numpy 数组,我正在尝试根据具有同一行的其他列的二进制组合来计算列中 1 的数量。
假设我有:
[[0,0,0,0],
[1,0,1,0],
[0,0,0,1],
[1,0,0,0],
[0,1,0,0],
[1,0,1,0]]
并且我希望能够计算第一列中 1 的数量,其中同一行中的其他列具有值 [0, 1, 0]。我需要我的代码返回2。第 1 行和第 5 行就是这种情况。
我尝试使用掩码执行此操作,但它没有返回我正在寻找的结果:
test = numpy.asarray(
[[0,0,0,0],
[1,0,1,0],
[0,0,0,1],
[1,0,0,0],
[0,1,0,0],
[1,0,1,0]])
mask = test[:,[1, 2, 3]] == [0,1,0]
mask
返回
array([[ True, False, True],
[ True, True, True],
[ True, False, False],
[ True, False, True],
[False, False, True],
[ True, True, True]])
假设掩蔽是正确的方法,有什么建议可以在我得到这个掩蔽后下一步做什么?
【问题讨论】:
标签: python numpy binary 2d mask