np.array_split() 可以进行不均等分割,而np.split() 只能进行均等分割。
array_split() 的不均等分割
>>> x = np.arange(8.0)
>>> np.array_split(x, 3)
[array([ 0., 1., 2.]), array([ 3., 4., 5.]), array([ 6., 7.])]
再看np.split()
>>> a=np.logspace(1,10,20)
>>> np.split(a,5)
[array([ 10. , 29.76351442, 88.58667904, 263.66508987]), array([ 784.75997035, 2335.72146909, 6951.92796178, 20691.38081115]), array([ 61584.8211066 , 183298.07108324, 545559.47811685,
1623776.73918872]), array([4.83293024e+06, 1.43844989e+07, 4.28133240e+07, 1.27427499e+08]), array([3.79269019e+08, 1.12883789e+09, 3.35981829e+09, 1.00000000e+10])]
此外,两个函数均有参数axis,axis=0表示按行分割,axis=1表示按列分割。
>>> b=np.arange(12).reshape(3,4)
>>> np.split(b,2,axis=1)
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
>>> np.array_split(b,3,axis=1)
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]