【发布时间】:2019-06-06 22:13:32
【问题描述】:
我有一个 4x3 布尔 numpy 数组,我试图返回一个相同大小的数组,除了原始每一行上第一个 True 值的位置之外,它都是 False。所以如果我有一个
的起始数组all_bools = np.array([[False, True, True],[True, True, True],[False, False, True],[False,False,False]])
all_bools
array([[False, True, True], # First true value = index 1
[ True, True, True], # First true value = index 0
[False, False, True], # First true value = index 2
[False, False, False]]) # No True Values
那我想回来
[[False, True, False],
[True, False, False],
[False, False, True],
[False, False, False]]
所以前三行的索引 1、0 和 2 已设置为 True,仅此而已。基本上,原始方式中的任何 True 值(每行的第一个值之外)都已设置为 False。
我一直在用 np.where 和 np.argmax 来解决这个问题,但我还没有找到一个好的解决方案 - 任何帮助都非常感激。这需要运行很多次,所以我想避免迭代。
【问题讨论】: