给出:
a = numpy.zeros(100, dtype=bool)
a[10:20] = True
a[40:60] = True
我希望将长度也是 100 的数组 b 分割成两个数组:
b[10:20], b[40:60]
换句话说,我希望在
a
中建立包含True值的索引范围,这样我就可以对b
进行切片。
您可以使用布尔数组
a
来查找值为True
的索引
import numpy as np
a = np.zeros(100, dtype=bool)
a[10:20] = True
a[40:60] = True
b = np.arange(100)
indices = np.where(a)[0]
slices = [b[start:end] for start, end in zip(indices[:-1:10], indices[1::10])]
for s in slices:
print(s)