numpy_array 分割

本文介绍numpy的array分割方式


Demo.py

import numpy as np
A = np.arange(12).reshape((3, 4))
print A
#纵向分割
print(np.split(A, 2, axis=1))
#横向分割
print(np.split(A, 3, axis=0))
#错误的分割
#print(np.split(A, 3, axis=1))
# ValueError: array split does not result in an equal division
#为了解决这种情况, 我们会有下面这种方式.
#不等量的分割
#在机器学习时经常会需要将数据做不等量的分割,因此解决办法为np.array_split()
print(np.array_split(A, 3, axis=1))
#其他的分割方式
#在Numpy里还有np.vsplit()与横np.hsplit()方式可用
print(np.vsplit(A, 3)) #横向分割 等于 print(np.split(A, 3, axis=0))
# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
print(np.hsplit(A, 2)) #纵向分割 等于 print(np.split(A, 2, axis=1))

结果:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]

你可能感兴趣的:(numpy_array 分割)