【发布时间】:2018-02-28 08:49:25
【问题描述】:
我有数组:
a = np.array([[ 0, 1, 2, 0, 0, 0],
[ 0, 4, 1, 35, 0, 10],
[ 0, 0, 5, 4, 0, 4],
[ 1, 2, 5, 4, 0, 4]])
我只需要从每行中第一个连续的0 中选择:
[[ True False False False False False]
[ True False False False False False]
[ True True False False False False]
[ False False False False False False]]
我试试:
a[np.arange(len(a)), a.argmax(1): np.arange(len(a)), [0,0,0]] = True
但这是错误的。
【问题讨论】:
-
@BradSolomon - 是的,完全正确。第一个连续。
-
我正在寻找解决方案很长时间,但没有成功:(
-
第一个零应该总是从头开始还是可以在行的中间?或者
2,4,0,0,4,5怎么样?应该选择零吗? -
@Psidom - 好问题。我认为并不总是应该开始。
标签: arrays numpy indexing where mask