在一个二进制的numpy数组中,我想选择1,并将所有0之间的数字转换为1。
例如
np.array([0,0,1,0,0,0,0,1,0,0,0,0,0,0,1])
应该被转换为:
np.array([0,0,1,1,1,1,1,1,1,1,1,1,1,1,1])
或者如果我有下面的数组,他们应该保持不变。
np.array([0,0,1,0,0,0,0,0,0,0,0,0,0,0,0])
np.array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
它们应该保持不变。有什么快速实现的方法吗?
我的方法是
start, end = a.argmax(), a[::-1].argmax() + 1
# only update if there is at least a one:
if a[start]==1:
a[start:-end] = 1