Если вы не можете или не хотите использовать scipy, это также работает:
def twoCols():
arr = np.array([[0. , 0., 0., 255. , 0., 255., 0. , 0. , 0. ],[0. , 0. , 0. , 255. , 0., 255., 0. , 0. , 0. ],[0., 0. , 0. , 255., 0. , 255. , 255. ,0. , 0. ],[0. ,0. , 255., 255. , 0. , 0. , 0. , 0. , 255.],[0., 0. , 0. , 255. , 0., 255. , 0. , 0., 0. ],[0., 0. , 0. , 255., 0. , 255. , 0. , 0., 0. ],[0., 0. , 0. , 255. , 0. , 255. , 0. , 0. , 0. ]], dtype=np.float64)
arrs = []
for c in range(arr.shape[1]):
if c == arr.shape[1]-1:
if sum(arr[:,c]) > 0:
arrs.append(arr[:,c:])
elif sum(arr[:,c]) > 0 and sum(arr[:,c+1]) > 0:
arrs.append(arr[:,c:c+2])
return arrs
>>> twoCols()
[array([[ 0., 255.],
[ 0., 255.],
[ 0., 255.],
[ 255., 255.],
[ 0., 255.],
[ 0., 255.],
[ 0., 255.]]), array([[ 255., 0.],
[ 255., 0.],
[ 255., 255.],
[ 0., 0.],
[ 255., 0.],
[ 255., 0.],
[ 255., 0.]]), array([[ 0.],
[ 0.],
[ 0.],
[ 255.],
[ 0.],
[ 0.],
[ 0.]])]