np.array_split()与np.split()

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])]

此外,两个函数均有参数axisaxis=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]])]

你可能感兴趣的:(numpy)