python代码也不会写 numpy

假如我有个区间
a=np.array([1,2,3,4,5,6,7,8,9,10])
b=np.array([3,7])
我怎么才可以把向量a分成三类
一类为a1=[1,2,3] 一类为a2=[3,4,5,6,7],最后一类为a3=[7,8,9,10]呢
就是怎么用b来分割a呀?
求解答

import numpy as np
import more_itertools as mi


a=np.array([1,2,3,4,5,6,7,8,9,10])
b=np.array([3,7])

res = list(mi.split_when(a, lambda x, y: x in b))
result = [res[i] if i == 0 else [b[i-1]] + res[i] for i in range(len(res ))]
print(result)

如下,b可以多于2个元素

import numpy as np
a=np.array([1,2,3,4,5,6,7,8,9,10])
b=np.array([3,7])
res,tmp = [],list(a)
for i in b:
    idx = tmp.index(i)
    res.append(tmp[:idx+1])
    tmp=tmp[idx:]
res.append(tmp)
print(res)

#out: [[1, 2, 3], [3, 4, 5, 6, 7], [7, 8, 9, 10]]
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10])
b = np.array([3,7])
a1 = a[np.where(a<=b[0])]
a2 = a[np.where((a>=b[0])&(a<=b[1]))]
a3 = a[np.where(a>=b[1])]
a1
array([1, 2, 3])
a2
array([3, 4, 5, 6, 7])
a3
array([ 7,  8,  9, 10])

请问有没有更一般化的写法,因为可能b向量有很多个数